Rücksendung eine Kopie des Objekts selbst in C++

Ok, Also habe ich gegoogelt das problem und ich habe gesucht stack overflow, aber ich kann nicht scheinen zu finden, eine gute Antwort. Also, ich bin mit der Frage auf, dass hier ist insbesondere zu meinem problem. Wenn es eine einfache Antwort, bitte schön, ich bin neu in der Sprache. Hier ist mein problem:

Bin ich zu schreiben versucht, eine Methode für eine Klasse in C++ ist das überladen eines operators. Ich möchte Rücksendung eine Kopie der Instanz geändert, aber nicht die Instanz selbst. Für einfache Beispiel verwende ich eine BigInt Klasse um das problem zu demonstrieren, dass ich habe.

Wenn ich den folgenden code:

const BigInt & operator+() const //returns a positive of the number
{
    BigInt returnValue = *this;  //this is where I THINK the problem is
    returnValue.makepositve();   //for examples sake
    return returnValue;
}

Bekomme ich die Fehlermeldung, dass der return-Wert kann erstellt wurden, auf den Stapel. Ich weiß, dass dies bedeutet, dass ich zum erstellen des Objekts auf dem heap, und geben Sie den Verweis zurück. Aber Wenn ich zu ändern 3rd - Zeile so etwas wie:

BigInt & returnValue = *this;

Bekomme ich eine Fehlermeldung sagt mir, dass die syntax nicht stimmt. Ich bin mir nicht wirklich sicher, was zu tun, jede Hilfe ist sehr willkommen!

InformationsquelleAutor | 2010-02-27

Schreibe einen Kommentar