子类拷贝构造要先调用父类的拷贝构造
详情请看下面代码
class base {
public:
base(int initialvalue = 0): x(initialvalue) {}
base(const base& rhs): x(rhs.x) {}
private:
int x;
};
class derived: public base {
public:
derived(int initialvalue)
: base(initialvalue), y(initialvalue) {}
derived(const derived& rhs): base(rhs), y(rhs.y) {}
// derived(const derived& rhs) // 错误的拷贝
// : y(rhs.y) {} // 构造函数
private:
int y;
};