4

考虑下面的例子:

template <typename T>
class SomeClass {
    // rest of the definition ...

    SomeClass<T>& function1() {
        // ...
        return *this;
    }

    SomeClass& function2() {
        // ...
        return *this;
    }

}

上面两个函数的返回值有区别吗?如果不是,应该首选哪一个?

4

1 回答 1

4

function1和之间没有区别function2。在定义SomeClass中没有模板参数的SomeClass类型是使用注入类名的一个实例:

注入的类名是所述类范围内的类的名称。

在类模板中,注入的类名既可以用作引用当前模板的模板名,也可以用作引用当前实例化的类名。

是否使用其中一个是主观的,但是注入的类名更易于维护,因为如果您更改SomeClass.

于 2019-10-22T10:33:58.427 回答