const Funktion über Pointer aushebeln
-
Was ist der Zweck dieser Klasse? Sie verstößt gegen jeden guten Geschmack.
Ich weiß jetzt auch nicht, was Du hören willst. Vielleicht stellst Du Deine Frage mal präzieser. Was verstehst Du unter "const problem"?
-
@IchBinImmerUnreg
> nichts "bitweise" verändert wird <<
Danke, das war das was ich suchte.
@krümelkacker
Das ist die einzige Funktion der Klasse. Es gibt noch mehr solcher Klassen.> Sie verstößt gegen jeden guten Geschmack.
Mmm da hätte ich noch ganz andere "Ausdrücke" für.
Der ganze Code darum sieht noch viel Schlimmer aus.
BeiDemThemaNicht
-
Was das
constheißt, darfst du selber bestimmen, der Compiler kann die Logik dahinter nicht verstehen und prüft nur das schon erwähnte. Wenn diegetPtrMethode nur auf konstante Referenzen aufgerufen werden soll, dann gehört da dasconsthin, damit die Klasse const Korrekt ist.
-
brotbernd schrieb:
Wenn die
getPtrMethode nur auf konstante Referenzen aufgerufen werden soll, dann gehört da dasconsthin, damit die Klasse const Korrekt ist.Etwas anders formuliert bedeutet das: eine Klasse ist const-korrekt wenn sie const-korrekt ist.
Finde ich gut
-
Siehe hierzu: http://xkcd.com/703/
-
Genau

-
hustbaer schrieb:
eine Klasse ist const-korrekt wenn sie const-korrekt ist.
Nina Hagen würde wohl damit antworten:
class Foo { public: Foo & getInternals() const { return *const_cast<Foo*>(this); } };
-
Wenn einem der Cast stört, folgendes ist auch valide:
class Foo { int a, * b; public: Foo() : a(0), b(&a) {} void set_a(int a) const { *b = a; } };Allerdings ist das schon mehr als nur dreckig. Dann doch lieber den Cast oder sich überlegen, ob man nicht etwas falsch macht.

-
Paul Müller schrieb:
Wenn einem der Cast stört, folgendes ist auch valide:
Dann doch lieber einfach mutable

-
hustbaer schrieb:
brotbernd schrieb:
Wenn die
getPtrMethode nur auf konstante Referenzen aufgerufen werden soll, dann gehört da dasconsthin, damit die Klasse const Korrekt ist.Etwas anders formuliert bedeutet das: eine Klasse ist const-korrekt wenn sie const-korrekt ist.
Finde ich gut
Oder etwas allgemeiner: Etwas ist richtig, wenn es richtig ist.
-
what is, is.