返回*this
和this
與通過引用返回對象的模板函數有什麼區別? 這兩個選項在VS2013中沒有任何問題編譯;返回參考模板
的代碼是一樣的東西
template <typename T>
class MyClass
{
public:
MyClass(){ }
~MyClass();
MyClass& operator=(const MyClass&);
};
template <typename T>
MyClass<T>& MyClass<T>::operator=(const MyClass& s_from)
{
//do some work
return *this;
//also works
//return this
}
template <typename T>
MyClass<T>::~MyClass()
{
}
'retun this;'不應該編譯。如果有,請製作[mcve]。 – nwp
它編譯。這就是爲什麼我問。 –
當你實例化你的模板並使用operator =時,你會得到錯誤。看到我的回答 – AnatolyS