复制构造函数复制指向抽象类的指针

时间:2014-09-02 21:25:39

标签: class pointers constructor copy abstract

假设我有一个类General,它包含一个指向抽象类的指针* _abstract。 如果我想实现常规拷贝构造函数,它是如何完成的?

我试试这个但它失败了:

General::General(const General &other)
{
    *_abstract = *other._abstract;
}

我也尝试过:

General::General(const General &other)
{
    *_abstract = new Abstract();
    *_abstract = *other._abstract;
}

这是不可能的,因为抽象类初始化(没有构造函数)

1 个答案:

答案 0 :(得分:1)

如果需要深度复制抽象类,则将虚拟克隆函数添加到抽象类中并使用它复制。

understanding virtual copy constructors