Ich habe versucht, einige Operator Überladungen (* und +) für eine Klasse, die in Smart-Zeigern verpackt ist.Operator Überladung der Klasse in Smartpointern
Wenn ich versuche, es mit normaler Überladung zu überlasten, fragt es offensichtlich nach den intelligenten Zeigertypen.
bearbeiten, so:
std::unique_ptr<Polynomial<T>> operator+(const std::unique_ptr<Polynomial<T>>& right);
template<class T>std::unique_ptr<Polynomial<T>> Polynomial<T>::operator+(const std::unique_ptr<Polynomial<T>>& right) {
//Do stuff
}
Und der Fehler:
So wie Sie die normalen Betreiber Überlastung gehen über, wenn die Klasse in einem Intelligenter Zeiger eingekapselt ist?
„Wenn ich versuche, es zu überlasten normale Überlastung verwendet, fragt sich offensichtlich für die Smart-Pointer-Typen.“ - Was? – Shoe
Warum sind diese Klassen in Smartpointern verpackt? Warum können Sie sie nicht als Werttypen verwenden? –