私は次のコードを持っていますが、なぜオブジェクトbの作成時に、クラスAのコンストラクターが呼び出されないのかわかりません.......少し助けていただければ幸いです。ありがとうございます。
#include <iostream>
using namespace std;
class MyClass
{
int x;
public:
MyClass(int y);
MyClass(MyClass &my)
{
x = my.x;
cout << "My class created by copy" << endl;
}
};
MyClass::MyClass(int y)
{
x = y;
cout << "My class created" << endl;
}
class A {
MyClass k;
public:
A(MyClass &my) : k(my) {
cout << "A created" << endl;
}
};
class B {
A data;
public:
B(A& aa) : data(aa)
{
cout << "B created" << endl;
}
};
int main()
{
MyClass obj(100);
A a(obj);
B b(a);
return 0;
}
実行:
My class created
My class created by copy
A created
My Class created by copy
B created