003
31.08.2006, 08:57 Uhr
ao
(Operator)
|
Zitat von Yadgar: |
Kann ich mich darauf verlassen, ...
|
Du kannst dich drauf verlassen, dass eine const-Methode ihr this-Objekt nicht verändert (1). Mit fremden Objekten kann die Methode anstellen, was sie will, d.h. sie kann an anderen Objekten auch Methoden aufrufen, die nicht const sind.
Ich glaub es wird Zeit für ein Beispiel:
C++: |
void MyClass::DoSomething (MyClass & other) const { // hier darf nichts getan werden, was *this verändert, // d.h. kein Schreibzugriff auf Member, kein Aufruf von // nicht-const Methoden und kein Weiterreichen // als nicht-const-Referenz, sonst Fehler.
// Sowas hier ist aber legal: other.ChangeEverything (); }
|
(1) Es sei denn, die Methode lügt, d.h. castet intern das const-Attribut weg. Aber das wäre schon ein ziemlicher Schweinkram. Dieser Post wurde am 31.08.2006 um 09:05 Uhr von ao editiert. |