C ++オブジェクトの初期化は、操作が完了すると、コンストラクタの初期化を呼び出すことです。
コンストラクタコンストラクタのパラメータは、パラメータのコンストラクタは、デフォルトコンストラクタは(コンパイラは私たちが達成与える)があるかどうか...(コピーコンストラクタの後に言いました)
注:私たち自身のコンストラクタを宣言していない場合にのみ、デフォルトコンストラクタは、私たちに引数なしのコンストラクタコンパイラを与えただろう、我々は定義した場合、コンパイラはコントロールを持っていません。
例:初期化するために、私たちにデフォルトコンストラクタを与えないクラスCコンパイラ下記参照します
#include <入出力ストリーム>
クラス A // コンパイル時であるデフォルトコンストラクタA()、私たちを達成するコンパイラ { }; クラスB { パブリック: B(){} // 引数なしコンストラクタを }; クラスC { パブリック: C(INT I){} // 有する引数コンストラクタ }; クラスD { パブリック: D(){} // コンストラクタパラメータ D(INT I){} // 引数のコンストラクタを有する }; INT メイン() { A A; B B; C C。 // コンストラクタは私たちに引数なしでコンパイラ製造デフォルトコンストラクタ与えないであろう場合にのみエラー (C C1 。1); // OK D D、D1(0); // OK リターン 0 ; }
エラーが言って:コンストラクタCを見つけることができません:: C()オブジェクトcを初期化します