C++のconstはオブジェクトを値で渡すイメージで使いたい時にとても便利
オブジェクトを実際に値で渡すとスタックを大きく消費するしそのたびにコンストラクターや
コピー演算子が呼ばれてしまうが、constを付けることでオブジェクトのアドレスをスタックにコピーするだけですむのだ
関数内部でオブジェクトが変更されないことが保証されているので、
呼び出し側はあたかも引数に渡したオブジェクトをプリミティブ型のように扱うことが出来る。
いわゆる近代的な言語で設計されているStringオブジェクトやIntegerオブジェクトのようなプリミティブ型を
具象化したクラスが、非コンストメンバーを持たないことで、プリミティブ型のような動作を
するのはとても興味深い。このような動作をさせるのにコンスタントオブジェクトという考え方はとても重要である。