从派生类创建复制构造函数和赋值运算符
Making a copy constructor and assignment operator from a derived class
我想知道如何同时使用派生类中的复制构造函数和赋值运算符。似乎关于这个问题的所有其他问题都涉及基类也有一个自己的赋值运算符,我的基类不允许有。
有问题的成员函数是:
SpecialOrder& operator=(const SPecialOrder &source)
您需要以一种或另一种方式处理基类成员的复制。
标准方法是在派生类中调用基类赋值运算符,例如 Order::operator=(source);
(Order::Order(source);
不正确,实际上你的编译器应该告诉你很多,你不能在已经创建的对象上调用构造函数)。
您的另一种选择是使用基类的公共/受保护方法来尝试设置状态,但是如果您无法访问基类赋值运算符或复制构造函数,或者它们未定义/删除,则基类可能从一开始就没有打算复制。
相关文章:
- 为什么在使用转换构造函数赋值后调用C++类的析构函数?
- 为用户定义的类正确调用复制构造函数/赋值运算符
- C++:关于使用 Stroustrup 示例移动构造函数/赋值的问题
- 初始值设定项列表与构造函数赋值与变量定义
- std::vector::emplace() 真的在面对抛出移动构造函数/赋值运算符时提供了强大的异常保证吗?
- 创建一个类并在C++中使用构造函数(赋值)
- 如何为具有自引用指针的类实现复制构造函数/赋值运算符
- 使typedef的构造函数/赋值运算符成为友元函数
- 复制构造函数+赋值运算符
- C++ 矢量从构造函数赋值对象,无需临时
- 具有std::原子成员变量的类的复制构造函数/赋值运算符出错
- 初始化对象时复制构造函数/赋值运算符混淆
- 默认情况下是默认的构造函数/赋值noexcept/constexpr
- 是否为派生类生成的移动构造函数/赋值运算符
- 复制构造函数/赋值运算符
- C++复制构造函数/赋值运算符错误
- 正在获取要使用的移动构造函数/赋值运算符
- 私有复制构造函数/赋值运算符和复制初始化
- 如何为自定义字符串类型编写构造函数/赋值运算符重载
- 为什么C++允许在具有指针成员的类中编译默认的复制构造函数/赋值运算符重载