2
나는 다음과 같은 코드를 가지고 있는데 왜 객체 B를 만들 때 클래스 A의 생성자가 호출되지 않는다는 것을 이해하지 못한다. 나는 약간의 help.hank를 매우 감사 할 것이다.C++ 클래스 구성, 왜 생성자가 호출되지 않습니까?
#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
'**'코드보기에서 물건을 잘라내는 것은 마크 업과 함께 작동하지 않습니다. 편집하십시오! –
왜 downvotes 얘들 아? 새로운 사용자. SE에 오신 것을 환영합니다. –
왜 downvote ?? ** 나는 정말로 ** [tag : C++]의 공격적인 downvoting을 주석없이 남겨 두지 않고 (적어도 여기에서 나는 그렇게 눈치 챘다). 여분의 태그 몇 개를주는 것은 이러한 행동을 완화시키는 것으로 보이며 이는 처음 또는 낮은 평판 OP에 적용될 가능성이 높습니다. 그들에게 기회를주십시오! 도움이 되십시오! –