class A {
public:
A() {}
A(const A& a) { cout << "A::A(A&)" << endl; }
};
class B {
public:
explicit B(A aa) {}
};
int main() {
A a;
B b(a);
return 0;
}
为什么打印“A :: A(A &)”?C++为什么要调用复制构造函数?
何时调用“A”的复制构造函数?如果代码调用复制构造函数,为什么我可以删除复制构造函数而不会产生编译错误?
编译器生成的拷贝构造函数对于“复杂元素”应该没有问题,如果所述元素是一种已被正确写入的类型。 – juanchopanza