コピーコンストラクタ

提供: RAD Studio
移動先: 案内検索

コンストラクタ:インデックス への移動

クラス X のコピーコンストラクタは,X 型の引数 1 つとともに呼び出されるコンストラクタです。以下のいずれかになります。



 X::X(X&)



または



 X::X(const X&)



または



 X::X(const X&, int = 0)



コピーコンストラクタでもデフォルトの引数が使えます。コピーコンストラクタは,クラスオブジェクトを初期化するとき,多くは別のクラスオブジェクトによる初期化を伴う宣言を行うときに呼び出されます。



 X x1;
 X x2 = x1;
 X x3(x1);



クラス X のコピーコンストラクタが必要であって,クラス X 内でほかのコンストラクタが何も定義されていない場合に,コンパイラ は,コピーコンストラクタを生成します。コンパイラが生成するコピーコンストラクタによって,単純なデータ型を使って安全なプログラムを開始できます。プログラムでクラス構造体および配列型といった集合体型や複雑な型を生成する場合にのみ,コピーコンストラクタをユーザーが定義しなければなりません。また,クラス引数を関数に値で渡す場合にも,コピーコンストラクタが呼び出されます。

クラスのメンバーごとの代入についての詳細は,代入演算子を参照してください。代入演算子をオーバーロードする場合には,コピーコンストラクタを定義しなければなりません。

関連項目