c++ - 复制抽象基类的对象

标签 c++ inheritance pointers derived-class deep-copy

如果我有一个指向派生自抽象基类的对象的指针(因此我无法创建该类的新对象),并且我希望对所述对象进行深度复制,是否有更简洁的方法完成那个而不是让抽象基类创建一个新的纯虚拟 copy 函数,每个继承类都必须实现?

最佳答案

不,但是copy方法并不一定很痛苦:

class Derived : public Base
{
  public:
    Base *copy() const
    {
        return new Derived(*this);
    }
};

(假设您已经有一个复制构造函数,如果您需要深复制,您将拥有)。

关于c++ - 复制抽象基类的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4755105/

相关文章:

c++ - 如何强制在 C++ 中编译一个函数?

c++ - 如何在 QUrl 中设置主机路径?

c++ - Qt Creator(设计器): Single text line with horizontal scrollbar

inheritance - 如何继承 MFC 对话框?

c++ - 使用纯虚拟成员地址的虚拟调用。合法吗?

python - 如果我要使用一个变量,我必须总是在我的函数中将它引用为全局变量吗?

c++ - 最后删除时出错[]

c++ - 与类型转换相关的排名意味着什么?

调用包含指针的函数

CSS - 覆盖继承的文本装饰 :line-through