BohYoh.comトップページへ
C & C++ FAQ
目次

C++ コピーコンストラクタとは何ですか。

 クラスXに対するコピーコンストラクタとは、最初の引数がX&, const X&, volatile X&, const volatile X&のいずれかであり、かつ、それ以外に引数を受け取らないか、引数を受け取るとしても全てにデフォルト実引数が与えられたコンストラクタのことです。
 例を示します。

class Test { public: Test(int x); Test(Test &); // コピーコンストラクタ Test(const Test&); // コピーコンストラクタ Test(volatile Test&, int x = 10); // コピーコンストラクタ };

 以下の例からも分かるように、コピーコンストラクタは、あたかも同一型のオブジェクトをコピーしてオブジェクトを作成できることから命名されたのです。

int main(void) { Test x(5); Test y = x; // コピーコンストラクタが呼び出されxと同じ値をもつyが作成される。 }



■ 根拠 ■
標準C++ §12.8 Copying class objects

戻る

BohYoh.comロゴ