getter/setter

これは理想なんですが、Get***とか、Set***とかいったメンバ関数は要らないのだろうなぁとか思ってます。constバージョンと非constバージョンでメンバの参照を返す関数を作って、使うときに気を使えばいいんじゃないかと。

class Number {
    int m_Number;
public:
    const int& Number() const { return m_Number; }
    int& Number() { return m_Number; }
};

で、このクラスを関数の引数なんかに使うときはconstと非constを明確にするという方向で。とはいえ、最初に言ったとおり、これは理想なので、実際はこうもいかないのが現状です。が、そのうちこの方法だけでプログラムが作れるようになればいいなぁとか考えてます。C#のプロパティがうらやましいです。