/
最近
.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は完全に受け取った側のオプションであり、プロトタイプと定義でのそれらの違いも無視されるらしい。
翌日へ
前日へ