私はメンバー変数を使用しており、プログラムのある時点でそれを変更したいのですが、意図しない変更を防ぐために他の場所で「ロック」することを好みます。
説明するコード:
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
};
問題は、それを何らかの方法で達成できるかどうかです。永続的な const_cast のようなものですか?
コンストラクターの初期化リストと定数をすぐに使用できることはわかっていますが、後で変数を変更する必要があります。