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