返回級裁判:從給定一個類模板類模板函數
template <typename T>
class my_class
{
public:
my_class& test1() { return *this; }
// OR
my_class<T>& test2() { return *this; }
}
是否有返回類型的test1
和test2
之間有什麼區別?
返回級裁判:從給定一個類模板類模板函數
template <typename T>
class my_class
{
public:
my_class& test1() { return *this; }
// OR
my_class<T>& test2() { return *this; }
}
是否有返回類型的test1
和test2
之間有什麼區別?
返回類型
test1
和test2
之間是否有區別?
沒有。有一個概念叫做injected-class-name。在my_class<T>
的正文中,名稱my_class
指的是完整類型my_class<T>
。
我們甚至可以藉此得出的邏輯結論,並添加:
my_class::my_class::my_class::my_class& test4() { return *this; }
否,範圍my_class<T>
,my_class
是my_class<T>
的縮寫。
沒有,沒有任何區別 – wasthishelpful
號(土豆) –