2016-09-29 7 views
1

クラステンプレートを考える:リターンクラスREF

template <typename T> 
class my_class 
{ 
public: 
    my_class& test1() { return *this; } 
    // OR 
    my_class<T>& test2() { return *this; } 
} 

test1test2の戻り値の型との間の違いはありますか?

+3

いや、もっと 'my_class'ニーズ – wasthishelpful

+3

号(ジャガイモ)はありません。 –

答えて

7

戻り値の型がtest1test2の間に違いはありますか?

いいえ。injected-class-nameという概念があります。 my_class<T>の本文内では、my_classという名前はフルタイプmy_class<T>を指します。

私たちも、その論理的結論にこれを取ると追加することができます。

my_class::my_class::my_class::my_class& test4() { return *this; } 
+3

は差 –

+1

注入されたクラス名は、C++ 03とC++ 11では動作が異なりますか? – Trevir

+1

@Trevir私はC++ 11の変更を認識していません。 – Barry

2

いいえ、範囲内my_class<T>my_classは、my_class<T>の略語です。