用于菱形继承 C++ 的复制赋值运算符

问题描述

我在菱形继承层次结构中有 4 个类。为 der12 类中的赋值运算符调用父母双方的赋值运算符是否正确?它不会调用 base operator= 2 次吗?有没有更好的方法

    protected:
        int a = 1;

    public:
        base& operator=(const base& ref){
            ...
        }
};

class der1 : virtual public base{
    protected:
        int b = 2;
    
    public:
        der1& operator=(const der1& ref){
            ...
        }
};

class der2 : virtual public base{
    protected:
        int c = 3;
        
    public:
        der2& operator=(const der2& ref){
            ...
        }
};

class der12 : public der1,public der2{
    int d = 4;

    public:
        der12& operator=(const der12& ref){
            der1::operator=(ref);
            der2::operator=(ref);
            d = ref.d;
            
            return *this;
        }
};```
@H_502_9@


解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)