从派生类创建复制构造函数和赋值运算符

Making a copy constructor and assignment operator from a derived class

本文关键字:构造函数 赋值运算符 复制 创建 派生      更新时间:2023-10-16

我想知道如何同时使用派生类中的复制构造函数和赋值运算符。似乎关于这个问题的所有其他问题都涉及基类也有一个自己的赋值运算符,我的基类不允许有。

有问题的成员函数是:

SpecialOrder& operator=(const SPecialOrder &source)

您需要以一种或另一种方式处理基类成员的复制。

标准方法是在派生类中调用基类赋值运算符,例如 Order::operator=(source);Order::Order(source);不正确,实际上你的编译器应该告诉你很多,你不能在已经创建的对象上调用构造函数)。

您的另一种选择是使用基类的公共/受保护方法来尝试设置状态,但是如果您无法访问基类赋值运算符或复制构造函数,或者它们未定义/删除,则基类可能从一开始就没有打算复制。