/ 最近 .rdf 追記 編集 設定 本棚

脳log[20091025]



2009年10月25日 (日) [C++] 判断が付かないこと。1.値を返す関数の戻り値の型に constを付けること。呼び出し側に不当な制約を押しつけることになる(コピーで受け取った値を変更するのは自由であるべきだ)から付けてはいけない、という指摘がほしい。2.ポインタを引数にとる関数で、そのポインタを constにすること。これは関数を呼び出す側には関係のないことで、関数の実装の中でだけ有効な約束みたいなものだ。ポインタ型の引数が constかどうかでオーバーロードが変わってしまうんだろうか。同一視してほしい。それなら宣言では T* と書き、定義で T*const と書くようにする。……。VCで調べた。1.関数の戻り値の型が const intでも int型の変数で受け取れる。constは飾り。2.宣言と定義でポインタの const性が異なっていてもなんら問題はない。それだけの違いでオーバーロードはできないということもわかる。これは VCについてだけで、仕様はわからないけどすっきりした。この二つは同根で、値で受け取った仮引数や関数の戻り値の constは完全に受け取った側のオプションであり、プロトタイプと定義でのそれらの違いも無視されるらしい。