template の絡んだ戻り値 – プログラミング – Home

通知
すべてクリア

[解決済] template の絡んだ戻り値


小S
 小S
(@小S)
ゲスト
結合: 20年前
投稿: 2
Topic starter  

template の絡んだ戻り値についての質問なのですが、
下記のように class A を定義したとき、
メソッド Test1() と Test2() の戻り値 ( または動作 ) に何か違いがあるのでしょう
か?

template <typename T>
class A
{
protected:
T m_data;

public:
A& Test1( T data ) { m_data = data; return ( *this ); }
A<T>& Test2( T data ) { m_data = data; return ( *this ); }
};


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

やってみればいい。

#include <iostream>
#include <typeinfo>

template <typename T>
class A {
protected:
T m_data;
public:
A& Test1( T data ) { m_data = data; return ( *this ); }
A<T>& Test2( T data ) { m_data = data; return ( *this ); }
};

int main() {
A<int> a;
std::cout << typeid(a.Test1(0)).name() << std::endl;
std::cout << typeid(a.Test2(0)).name() << std::endl;
return 0;
}

/* 実行結果
class A<int>
class A<int>
*/

…… 同じですね。


返信引用
小S
 小S
(@小S)
ゲスト
結合: 20年前
投稿: 2
Topic starter  

なるほど!! typeid() を使えば戻り値の型が確認できますね。
επιστημη さん、ありがとうございました♪


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました