Was ist der Unterschied zwischen der Rückgabe von *this
und this
aus einer Vorlagenfunktion, die Objekt als Referenz zurückgibt? Beide Optionen kompilieren ohne Probleme in VS2013;Rückgabe anhand der Vorlage
Der Code ist so etwas wie
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()
{
}
'wiederholen Sie dies;' sollte nicht kompilieren. Machen Sie eine [mcve], wenn dies der Fall ist. – nwp
Es kompiliert. Deshalb frage ich. –
Wenn Sie Ihre Vorlage instanziieren und Operator = verwenden, erhalten Sie einen Fehler. siehe meine Antwort – AnatolyS