operator -> non-const über -> const implementieren
-
Hallo,
Wenn man eine Memberfunktion sowohl als non-const, als auch als const-Version hat, kann man ja die non-const Version über die const-Version implementieren. Wie funktioniert das bei operator ->?
Grüße,
PI
-
Nun, ich würde den const-Teil von this wegcasten und das Objekt, auf das über -> zugegriffen werden soll, zurückliefern.
Also quasi so:
class Whatever { private: int& value; public: int& operator->() {return value;} const int& operator->() const {return const_cast<Whatever*>(this)->operator->();} };oder so.
Edit: Achso, Du wolltest das andersrum haben. Dann könnte man halt this zu const Whatever* casten und vom Ergebnis das const wiederum wegcasten oder so.
-
return const_cast<T*>(static_cast<const nullable*>(this)->operator ->());Funktioniert tatsächlich. Hatte ich wohl vorhin einen Syntaxfehler oder sowas drin. Seltsam.
Danke
