C++语言复制构造函数
#include <iostream>
using namespace std;
class A {
public:
A() {};
A(const A& a);
};
A::A(const A& a) {
cout << "复制构造调用" << endl;
};
void func(A a) {
}
int main()
{
A a;
func(a); //此时实参复制给形参,间接发生 A a(a)的调用 因此复制构造会被调用
return 0;
}
以上代码中,复制构造函数会被调用。
此外 const A& a
如何理解? 实际上也发生了实参形参转化,为 A &a = a。相当于形参为一个引用,在这一步引用绑定了传入的实参a。