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:你因爲隱含而投票嗎? –