const-member von nicht-const member aufrufen
-
hallo,
ich probiere eine style-klasse (qt) zu portieren.
jedoch habe ich ein problem:
die funktionen des styles, welche aufgerufen werden um die
widgets zu zeichen sind alle als const deklariert. jedoch muss
ich nicht-const funktionen aufrufen um die buttons zu maskieren und
die widgets-status zu registrieren. habe probiert den this-zeiger auf
const zu casten, natürlich ohne jeglichen erfolg.nun, ist es möglich eine nicht-const funktion in einer const-funktion aufzurufen, bzw. kann man das umgehen?
danke & gruss
const-hasser
-
Das DARF man nicht umgehen. Sonst wär ja das const fürn Arsch.
-
const-hasser schrieb:
nun, ist es möglich eine nicht-const funktion in einer const-funktion aufzurufen, bzw. kann man das umgehen?
Sicher. Aber die Notwendigkeit deutet in der Regel auf einen Design-Fehler bzw. auf mangelende const-correctness hin. Statt wild rumzucasten und einen Namen wie "const hasser" zu tragen, solltest du dich vielleicht lieber mal mit den Prinzipien beschäftigen.
Hier nun der Cast:
class Foo { public: void const_func() const { // geht nicht, da const: // non_const_func(); // so geht's const_cast<Foo*>(this)->non_const_func(); // oder so Foo* self = const_cast<Foo*>(this); self->non_const_func(); } void non_const_func() { } };