コピーコンストラクタ
「インサイドC ++オブジェクト・モデルは、」非常に良い本は、クラスの構築と破棄を理解するために特に便利です。
1は、C ++のデフォルトコピーコンストラクタについて私に従っている場合は、一般的に、我々は次のような場合にそれを使用します
// class A {...};
A aa; // default ctor
A a = aa; // copy ctor
//
void func(A a) { // TODO }
func(a) // copy ctor
A f() { return A(); }
f(); // copy ctor
// 以下是我遇到与下面相似问题时的产生的这个思考
class B : public A {
B(const A &a) A(a) {...} // A没有explicit copy constructor
// TODO
};
私はAで独自のコピーコンストラクタを定義しなかった場合は、クラスは、関数のデフォルトの動作は、それが何であるかを生成し、自動的に生成されたデフォルトのコピーコンストラクタを使用しますか?
実際には、ここにあるデフォルトのmemberwiseの初期化(、状況は浅いコピーを表示します一見出会いポインタ)を、過去に各データメンバの値をコピーすることですが、彼は再帰的にメンバクラスのオブジェクトの一つ取るのではなく、物事実施例memberwise初期化方法。