Ist es erlaubt, dies einer dereferenzierten (* dies) zuzuordnen?

8

Ich aktualisiere gerade meine C ++ - Fähigkeiten und frage mich, ob es möglich ist, etwas zu *this zuzuordnen. Ich weiß, das Zuweisen zu this ist verboten, kann aber nicht die gleichen Informationen für meinen Fall finden.

Ein Beispiel:

%Vor%

Bearbeiten: Der Rückgabetyp von incr() wurde von void auf Foo korrigiert.

    
Kolja 15.10.2010, 17:15
quelle

4 Antworten

2

void incr() { return Foo(x+1); }

Dies ist ungültig. Sie können ein Foo -Objekt nicht von einer Funktion mit void return type zurückgeben.

%Vor%

Das ist in Ordnung.

    
Prasoon Saurav 15.10.2010, 17:19
quelle
4

Ja, das ist erlaubt und ruft tatsächlich den Zuweisungsoperator Ihrer Klasse auf.

    
Etienne de Martel 15.10.2010 17:19
quelle
1

Ja, es funktioniert. Und *this = x ist nur syntaktischer Zucker für operator=(x) .

    
fredoverflow 15.10.2010 17:36
quelle
0

Ja, das ist möglich, wenn *this return value von einem Datentyp ist, für den ein Zuweisungsoperator definiert wurde.

    
Franci Penov 15.10.2010 17:20
quelle

Tags und Links