適切なconstの使い方(2)

最近出た本である「C++ Coding Standards」を買いました。
著者は「C++ Depthシリーズ」の過去の著者二人です。素晴らしく良くできているとおもいますので是非読んでみてください。
constについての見解も再掲載されていました。
■値渡しの場合、関数宣言(※1)にconstは不要
同氏が前書いたことと若干違います。
違う点は
int Func(int nVal);
宣言し、実際は
int Func(const int nVal)
{ ・・・ }
定義する例を追加した点。
コレ、実は私もやっていました。確かに変数を弄る危険はなくなりますが・・・。
定義の一部にconstを書き忘れて、統一性が無くなる。(経験則)
コンパイラがこの2つを同等に解釈する事を知らない人も居る為、混乱を招く。(特にクラスのメンバ関数)

そうなる位なら宣言にもconstを付けて定義はコピペした方が良いと思うんですが。Grepも置換もしやすいですし。

※1 宣言と定義の区別がついていない人、結構います。ヘッダファイルに書くべき事が宣言、ソースファイルに書くべきなのが定義です。不安だったら調べなおしましょう。(最近はヘッダに実装を書かざるを得ない場合もあります。VC++もexportのサポートを切望。)

Leave a Reply

最初のコメントを頂けますか?

更新通知を受け取る »
avatar
wpDiscuz