C++ 再入門ブーム

参考になりまする.

const が出てきた。これ重要。

一応 const の例を全部書いてみよう。

const char* s = "hige"; // ポインタ s の指す先 変更不可
const char&r  = s[0];   // r の参照先 変更不可
const int i = 1234;     // i の値 変更不可
char* const p = "hige"; // p 変更負荷

以前『C++ と const 参照 - NyaRuRuの日記』でも書きましたが,const 怖いよ const な私のイメージはこんな感じ.

  • s はアドレスの入った箱で,こいつを通しては変更不能.だけど指す先が不変値とは限らない.
  • r は箱っぽい名札で,こいつを通しては変更不能.だけど指す先が不変値とは限らない.
  • i は不変値の入った箱.
  • p は不変なアドレスの入った箱.

C++ で不変値を中心にプログラミングしたい場合,const T& は微妙に使えなくてコピーだらけになるという印象があるのですが,皆さんどうされているんでしょうね?

追記