ゆとりーなの日記

日記的な事を書いて行くと思はれる

C++では宗教上の理由により全ての変数がconstである必要がある

って主張され始めて久しいです。これを徹底すると変数は最早変数ですらないですが。APIの仕様上constを付けることが不可能な場合もあります。まあconstの方が幸せなことも多いので、constは出来る限り付けるべきですが。因みに今回は引数やメンバ関数の話ではなく、あくまで変数の話です。
よくあるC++の解説書では、constは#defineで定数を定義する時のより優れた方法的な説明がされることが多いように思えます。実際私も変数に関してはそういう使い方しかしていなかったのですが、一昨日の朝位に走った時に関数内のローカル変数にもconstを付けられる機会が多いのではないかと思い始めました。

void func() {
  const int val(なんかの関数より得られる値);
  // 得られたval毎に処理が分岐
}

例えば上の様な例です。例えば何かの状態を関数内で取得して、以下はそれを参照するのみの場合、変数にはconstを付けることが出来ます。今まで私はこの様な場合にはconstを付けることはなかったのですが(面倒臭いというかconstを付けられることに気付かなかった)、これからは宗教上の理由により付けることにします。