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)
{ ... }
我假定案例一是正确的。超载运算符=内部模板类
问题>为什么我们不必在功能参数列表中使用ClassA<T>
,比如情况二?
+1,因为它是隐含的。 – iammilind
我被告知“我们必须为类模板的名称指定模板参数,除了类本身的范围内。这里函数参数不在类A的范围内,所以我认为我们必须使用第二种情况一个“。 – q0987
@iammilind:你因为隐含而投票吗? –