Korrekte Rückgabe eines Objekts

  • Themenstarter Themenstarter C152778
  • Beginndatum Beginndatum
Dass Kopieren generell in Ordnung ist kann man so nicht sagen. Der Optimierer hat auch irgendwo seine Grenzen und fixen Möglichkeiten. Es sollte nur sagen, dass praktisch alles immer mit Bedacht ausgedrückt werden sollte, im Sinne von "sag niemals nie".

Wenn du unnötige Kopien vermeiden kannst spricht eigentlich nichts dagegen das auch zu tun ausser du weisst zu 100%, dass dein Optimierer sich genau diese Gedanken auch macht und dann deinen Code entsprechend umformt.
 
Warum benutzt du bei deiner zweiten Methode nicht einfach eine Referenz?

Gruß,

badday

Finde ich je nach Methode auch eine gute Idee.
C++:
void machWas( A& a ) {
   a.machwas();
   a.machNochWas();
}

Dann kannst du machen:
C++:
A a;
machWas(a);

Macht natürlich nur Sinn, wenn "machWas" nicht als Methode von A besser aufgehoben wäre.


Weniger Sinn macht das natürlich, wenn du ein Objekt erzeugen möchtest. Aber je nach Verwendung würd ich wahlweise einfach das Objekt zurück geben (und hoffen dass der Compiler optimiert) oder einen auto_ptr oder shared_ptr zurück geben. C++0x bringt dann irgendwie Movable-Dinger oder so, womit man so eine Rückgabe ohne kopie machen kann.
 
Zurück