template<typename T> ClassA
{
...
ClassA& operator=(const ClassA&);
...
};
// case one:
template<typename T>
ClassA<T>& ClassA<T>::operator=(const ClassA &rhs)
{ ... }
// case two:
template<typename T>
ClassA<T>& ClassA<T>::operator=(const ClassA<T> &rhs)
{ ... }
我认为案例一是正确的。
问题&GT;为什么我们不必在函数参数列表中使用ClassA<T>
,例如两个?
答案 0 :(得分:2)
如您所见,任何一个版本都可以使用。
一旦我们通过了ClassA<T>::
的{{1}}部分,它的行为就像我们在课堂上一样。例如,操作员可以访问该类的所有成员。
您必须指定返回值的全名,因为此时我们仍然不知道这是一个成员函数(或运算符)。
答案 1 :(得分:0)
它隐含在函数参数范围内(但不在返回类型中)。另请参阅使用嵌套类作为参数类型。