请你回答一下C++中拷贝赋值函数的形参能否进行值传递?
- 不能。如果是这种情况下,调用拷贝构造函数的时候,首先要将实参传递给形参,这个传递的时候又要调用拷贝构造函数(aa = ex.aa; //此处调用拷贝构造函数)。。如此循环,无法完成拷贝,栈也会满。
class Example
{
public:
Example(int a):aa(a) {} //构造函数
Example(Example &ex) //拷贝构造函数(引用传递参数)
{
aa = ex.aa; //此处调用拷贝构造函数
}
private:
int aa;
};
int main()
{
Example e1(10);
Example e2 = e1;
return 0;
}