如果函数是在类的主体中定义的,我是否需要在成员函数的返回类型中指定 typename?
Do I need to specify typename in the return type of member function if the function is defined inside the body of the class?
考虑下面的例子:
template <typename T>
class SomeClass {
// rest of the definition ...
SomeClass<T>& function1() {
// ...
return *this;
}
SomeClass& function2() {
// ...
return *this;
}
}
上述两个函数的返回值之间有区别吗?如果没有,应该首选哪一个?
function1
和function2
之间没有区别。在SomeClass
的定义中键入不带模板参数的SomeClass
是使用注入类名的一个实例:
注入的类名是该类范围内类的名称。
在类模板中,注入的类名既可以用作引用当前模板的模板名称,也可以用作引用当前实例化的类名。
是否使用一个而不是另一个是主观的,但注入的类名更易于维护,因为如果您更改SomeClass
的模板参数数量,则不必手动更改它。
相关文章:
- 检查函数返回类型是否与STL容器类型值相同
- 警告:在函数返回类型 [-Wignore 限定符] 时忽略类型限定符
- 在 c++ 中将函数返回类型指定为模板参数
- 通过引用传递参数;函数返回类型是否必须为 VOID?
- 如何避免模板函数返回类型重复?
- 从类型bankAccount的返回值到函数返回类型int没有可行的转换
- 为什么在某些情况下从函数返回类型中删除 cv 限定符?
- 模板类内模板类的函数返回类型
- 为什么函数返回类型中不允许参数推导?
- 函数返回类型之前的"define"
- C++推断要隐式调用的模板函数返回类型
- 具有不同模板参数的函数返回类型
- 当函数返回类型为父类时,如何返回子类的对象?
- C++:在原型中声明"auto"函数返回类型仍然会导致在扣除错误之前使用"auto&quo
- C++14 'auto'能够获取函数返回类型,我们还需要 std::result_of<> 吗?
- 函数返回类型中的模板类型推断
- 嵌套模板类返回类型在 C++ 中的头文件中函数返回类型的语法
- C++重写 void 函数返回类型会导致生成失败
- 从函数内部推断函数返回类型
- C++嵌套类函数返回类型和命名空间