001
02.02.2008, 21:03 Uhr
0xdeadbeef
Gott (Operator)
|
Ne, in a wird der Rückgabewert reinkopiert. Die Kopie ist dann nicht mehr zwingend const.
Ansonsten,
C++: |
int const &getNumber() const;
|
macht mit einem int gerade nur wenig Sinn, allerhöchstens wird der Code dadurch etwas langsamer. Wahrscheinlich auch das nicht, ein moderner Compiler sollte das wegoptimieren können.
C++: |
int &getNumber() const;
|
angeht...also, du kannst keinen Klassenmember zurückgeben, weil die Methode const deklariert ist, und du eine nicht-konstante Referenz zurückgeben willst, in die einer reinschreiben könnte. Mit einer "normalen Variable" meinst du hoffentlich nicht etwas wie
C++: |
int &getNumber() const { int i = 2; return i; }
|
...denn das erzeugt undefiniertes Verhalten. i wird am Ende der Funktion zerstört, dementsprechend zeigt deine Referenz ins Leere. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 03.02.2008 um 18:51 Uhr von 0xdeadbeef editiert. |