Backto C/C++ Index
对于一个class,可以定义多种构造函数,比如
class A {
public:
// your constructor A
// your constructor B
void Print() {std::cout<<value<<std::endl;}
private:
int value;
};
空构造函数
A(){}
复制构造函数
复制构造函数指的是传入的参数是 A 的一个实例,注意,这里有一个大坑:
A(A other) {value = other.value; }
如果这样的直接值传递,把形参复制到实参会调用复制构造函数自己,也就会形成没有终止的递归调用,最终爆栈溢出。因此,C++ 中不允许此类值传递的复制构造函数,编译会报错。解决方案也很简单,就是值传递改为苍凉引用
A (const A& ohter){value = other.value;}