【发布时间】:2017-10-09 14:54:16
【问题描述】:
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&)”?
“A”的复制构造函数是什么时候调用的?而如果代码调用了拷贝构造函数,为什么我可以去掉拷贝构造函数而不产生编译错误呢?
【问题讨论】:
标签: c++ c++11 copy-constructor