看下面代码
class base
{
public:
base();
base(const base& other)
{
//...
}
base& operator=(base& other)
{
//..
}
};
class node : public base
{
public:
node();
//正确,通过初始化列表来调用基类拷贝构造
node(const node& other)
:base(other)
{
//...
}
//错误的示范...(赋值不应该重新构造基类)
node& operator=(node& other):base(other)
{
//...
return *this;
}
//正确,通过调用基类的赋值操作来实现
node& operator=(node& other)
{
base::operator=(other);
//..
return *this;
}
};