Ich benutze eine Member-Variable und an einem Punkt des Programms möchte ich es ändern, aber ich bevorzuge es "überall zu sperren", um unbeabsichtigte Änderungen zu verhindern.Kann eine Variable gesperrt werden, um Änderungen in C++ zu verhindern?
-Code zu erklären:
class myClass {
int x; // This should be prevented to being changed most of the time
int y; // Regular variable
myclass() {x = 1;}
void foo1() {x++; y++;} // This can change x
void foo2() {x--; y--;} // This shouldn't be able to change x
// I want it to throw a compile error
};
Die Frage ist: Kann es in irgendeiner Weise erreicht werden? Etwas wie permanente const_cast?
Ich weiß, ich könnte Konstruktor Initialisierungsliste und Konstante sofort verwenden, aber ich muss später meine Variable ändern.
machen Sie es privat, und ändern Sie es nur, wenn Sie möchten? – Chad
Sie möchten verhindern, dass die Implementierung x ändert, oder möchten Sie verhindern, dass jemand die Methode aufruft? – Joe
@Joe: Ich möchte es beim Kompilieren einen Fehler werfen. – Petr