1、问题一:拷贝构造函数的形参是否可以是值传递,为什么?
#include<iostream>
using namespace std;
class A
{
public:
A()
{
cout << "in constructor" << endl;
}
A(A test)
{
this->a = test.a;
cout << "in copy constructor" << endl;
}
private:
int a;
};
int main(void)
{
A a;
A b(a);
return 0;
}
对于这样的程序很好理解,编译阶段就会出错,值传递会调用拷贝构造函数,然后循环调用自己,栈溢出。
指针是否可以作为拷贝构造函数形参仍然存疑。