Frage zu 'const'
-
Hallo ich habe folgende abstrakte Klasse:
class Foo { public: virtual double abc() const = 0; };Was genau macht das const?
-
const hinter methoden heißt: diese funktion verändert nichts an der [edit]/*Klasse*/ Objekt[/edit] und kann deswegen auch mit const-Objekten aufgerufen werden. Man sollte das const natürlich nur verwenden, wenn es auch wirklich so ist, als z.B. bei gettern oder Ausgabefunktionen. Wichtig ist das ganze vor Allem bei const-Referenzen.
geloescht
-
Alles klar, vielen Dank!
-
kurz nach meinem edit ist mir selber auch noch ne frage eingefallen: dürfen const-methoden statische member verändern? Die gehören ja streng genommen nicht zum aktuellen Objekt...
-
Kann man das nicht einfach ausprobieren?
-
öhm, ja, aber ich bin zu faul... werde ich schon tun falls keine antwort kommt

-
geloescht schrieb:
dürfen const-methoden statische member verändern?
Aber sicher doch.
-
groovemaster schrieb:
geloescht schrieb:
dürfen const-methoden statische member verändern?
Aber sicher doch.
Und das hat auch einen logischen Grund. Das const bezieht sich auf das Objekt (genauergesagt auf den this-Pointer). Da statische Variablen unabhängig von jedem Objekt sind (und damit vom this-Pointer), können solche auch in einer const-Methode verändert werden.
-
dankeschön. hätte ich es ausprobiert hätte ich zwar ne erkenntnis, aber keine begründung gehabt

geloescht