2008-02-23

Effective C++ 3項

3項 可能ならいつでも const を使おう

いつも言い訳していますが、自分のためのメモですので、const 宣言の書き方の要点だけ。

  • 変数に対する const
    • ポインタの場合、ポインタそのものが変更できないのか、ポインタが指すデータが変更できないのか、両方かで書き方が変わる。
    • *より左側に const があるときはポインタが指すデータが変更できない
    • *より右側に const があるときはポインタそのものが変更できない
  • 関数に対する const
    • 引数に対する const はポインタ渡しや参照渡しを安全にすることができる。引数にクラスを使用する場合、値渡しは色々問題を引き起こす可能性があるためconst参照渡しを使用する場合が多くなる。
    • 返値に対する const は演算子のオーバーロードなどで使用すると効果的
    • メンバ関数に対する const は関数定義の後ろに const をつける。これによりメンバ関数内で static でないメンバ変数を変更する事が出来なくなる(クラスインスタンスがbitレベルで変更不可となる)
    • メンバ関数は const が異なると別の型の定義と判断される。つまりオーバーロード扱いとなる


0 件のコメント: