我如何解决我似乎遇到的以下困境?

问题描述

我遇到了这个问题:

#include <iostream>

class A{
protected:
    int a = 0;
};

class B : public virtual A{
};

class C : public virtual A{
};

class D : public B,public C{
    friend std::istream& operator >>(std::istream& in,D & d);
};

std::istream& operator >>(std::istream& in,D & d){
    in >> d.B::a;
    in >> d.C::a;
    std::cout<<d.B::a<<std::endl;
    std::cout<<d.C::a<<std::endl;

    return in;
}

int main()
{
    D d;
    std::cin>>d;
}

示例输入:

10 21

输出

21 21

预期输出

10 21

有人可以帮忙吗?我猜这与动态/静态转换有关,但我对这些不太了解。

解决方法

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

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...