【问题标题】:copy constructor copy pointer to abstract class复制构造函数复制指针到抽象类
【发布时间】:2014-09-02 21:25:39
【问题描述】:

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

我尝试了这个,但失败了:

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

我也试过了:

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

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

【问题讨论】:

    标签: class pointers constructor copy abstract


    【解决方案1】:

    如果您需要对抽象类进行深度复制,则将虚拟克隆函数添加到抽象类并与之一起复制。

    understanding virtual copy constructors

    【讨论】:

    猜你喜欢
    • 2010-12-02
    • 2011-02-09
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 2010-10-21
    • 2016-04-13
    相关资源
    最近更新 更多