「C++」の編集履歴(バックアップ)一覧はこちら
C++ - (2010/01/05 (火) 12:54:58) の最新版との変更点
追加された行は緑色になります。
削除された行は赤色になります。
*逆引き
***メンバ関数の中身が決まらない
その関数を純粋仮想関数にする。その関数を含むクラスは抽象クラスとなる。
***派生クラス側のメンバ関数を使うようにしたい
基本クラス側のメンバ関数を仮想関数にする。
通常、クラスを作成する際に、将来に渡って派生されるかどうかなどはわからないので、全て仮想関数にすることをデフォルトにしても良い。ただし、処理速度は遅くなる。
***デストラクタの呼び出し順は?
派生クラスから。仮想指定を無視してそのクラスの関数が呼び出される。
***抽象クラスのメンバ関数がたまたま全てに必要な処理があり、純粋仮想化できない
純粋仮想デストラクタを使う。デストラクタを純粋仮想関数にする。
*リンク
[[C++編(言語解説)>>http://www.geocities.jp/ky_webid/cpp/language/index.html]]
[[C++入門>>http://wisdom.sakura.ne.jp/programming/cpp/index.html]]
[[ロベールのC++教室>>http://www7b.biglobe.ne.jp/robe/cpphtml/]]
[[猫でもわかるプログラミング>>http://www.kumei.ne.jp/c_lang/]]
----
目次
----
#contents()
----
*逆引き
***メンバ関数の中身が決まらない
その関数を純粋仮想関数にする。その関数を含むクラスは抽象クラスとなる。
***派生クラス側のメンバ関数を使うようにしたい
基本クラス側のメンバ関数を仮想関数にする。
通常、クラスを作成する際に、将来に渡って派生されるかどうかなどはわからないので、全て仮想関数にすることをデフォルトにしても良い。ただし、処理速度は遅くなる。
***デストラクタの呼び出し順は?
派生クラスから。仮想指定を無視してそのクラスの関数が呼び出される。
***抽象クラスを作る際、たまたま全てのメンバ関数に必要な処理があり、純粋仮想関数にできない
純粋仮想デストラクタを使う。デストラクタを純粋仮想関数にする。
*ソースコードチェック
**一般
***定数定義
#defineではなくconstを使う
***戻り値
戻り値が必ず処理されていること
**クラス
***初期化
全メンバ変数をコンストラクタで初期化しているか?特に、初期化不要な場合はコメントに明記する。
***破棄
コンストラクタでnewしたものをデストラクタでdeleteしているか?特に、デストラクタ以外で破棄するものはコメントに明記する。
***制約の明示
****インスタンスは1つ
Singletonにする
****コピー禁止
代入演算子をprivateにする
*リンク
[[C/C++リファレンス>>http://www.cppreference.com/wiki/jp/start]]
[[C++編(言語解説)>>http://www.geocities.jp/ky_webid/cpp/language/index.html]]
[[C++入門>>http://wisdom.sakura.ne.jp/programming/cpp/index.html]]
[[ロベールのC++教室>>http://www7b.biglobe.ne.jp/robe/cpphtml/]]
[[猫でもわかるプログラミング>>http://www.kumei.ne.jp/c_lang/]]
[[Programming Place Plus>>http://www.geocities.jp/ky_webid/index_old.html]]
----