从类模板函数返回类ref

时间:2016-09-29 14:16:00

标签: c++ templates

给出一个类模板:

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

test1test2的返回类型之间是否存在差异?

2 个答案:

答案 0 :(得分:7)

  

test1test2的返回类型之间是否存在差异?

没有。有一个名为injected-class-name的概念。在my_class<T>的正文中,名称my_class指的是完整类型my_class<T>

我们甚至可以将其归结为合乎逻辑的结论并添加:

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

答案 1 :(得分:2)

不,在my_class<T>范围内,my_classmy_class<T>的缩写。