2014-01-01から1ヶ月間の記事一覧
関数は、ローカルオブジェクトへのリファレンスや関数の中でnewで初期化したポインタの参照先を返してはならない関数内でローカルオブジェクトへのリファレンスを返すと、関数スコープを抜けたときにローカルオブジェクトが破壊され、リファレンスの指したも…
メンバ関数は、自分よりもアクセス制限がきついメンバへの非constポインタや参照を返さないようにしようprotectedやprivateなメンバへのハンドルを返してしまうと、アクセス制限の意味がなくなってしまいます。 データを返すなら値返しで、ハンドルを返すな…
内部データの「ハンドル」を返すのはやめよう内部データのハンドルをそのまま返してしまうと、意図しないデータの書き換えが発生することがあります。 できる限り内部データのハンドルは返さないべきですが、返す必要があるときは、const指定をして返します。
グローバルな名前空間は分割しよう
暗黙のうちに生成される不要なメンバ関数は、明示的に使用を禁止しよう
潜在的な多義性に対するガードを固めよう関数をオーバロードしたときや、多重継承をしたときなどには、潜在的な多義性があります。 この問題を完全に防ぐのは不可能なので、注意を怠らないことが重要です。
25項 ポインタと数値型とにオーバロードするのは避けよう
関数のオーバロードとデフォルトつきパラメータは、慎重に使い分けよう
オブジェクトを返さなければならないときに、リファレンスを返そうとがんばるのはやめよう
値渡しよりも、リファレンス渡しを使おう
"使えるときは、必ずconstを使おう"
"データメンバをpublicインタフェースに入れるのはやめよう"タイトルの通り
"メンバ関数、非メンバ関数、friend関数を使い分けよう"
クラスインターフェイスが完全かつ最小限になるまで頑張ろうクライアントが普通やりたいようなことはなんでもできるようにし、完全なインターフェイスを実現します。 インターフェイスが多すぎると複雑で保守しづらいため、最小限のインタフェースを目指しま…