勉強メモ。
・getter/setterによってメンバ変数を隠蔽する
class Class { public: double x; };
ではなく
class Class { public: double GetX() const; void SetX(double val); private: double mX; }; double Class::GetX() const { return mX; } void Class::SetX(double val){ mX = val; }
のように書く。
getter/setter内にデバッグメッセージやブレークポイントを仕込めばどのタイミングで値がget/setされたか分かる。
値が変更されるたびに特定の処理をする、みたいな処理もsetterに追加できる。
setterを消せば外部からは値の変更ができなくなるなど、読み書きの制御が行える。
などメリット色々らしい。