如何在不丢失派生属性的情况下从基类实例重新分配基类属性?

时间:2019-04-12 18:02:31

标签: c++

考虑:

class Base{
    private:
        int general_attribute;
};

class Derived : public Base{
    private:
        int specific attribute;

    public:
        void reassign(Base value);
};

是否存在一种通用的,可维护的方式来编写reassign,以便仅从基类实例中复制基类成员(即general_attribute)?

如果我理解正确,那就写

void Derived::reassign(Base value){
     *this = value;
}

不会这样做,因为它会由于对象切片而导致specific_attribute丢失。

推荐的解决方案有哪些?

0 个答案:

没有答案