Voici un exemple d'héritage multiple. J'ai utilisé l'opérateur de résolution d'étendue pour résoudre l'ambiguïté au lieu d'une classe virtuelle.Éviter l'ambiguïté induite par héritage multiple en utilisant la résolution de portée
struct A
{
int i;
};
struct B : A
{};
struct C : A
{};
struct D: B, C
{
void f()
{
B::i = 10;
}
void g()
{
std::cout << B::i <<std::endl;
}
};
int main()
{
D d1;
d1.f();
d1.g();
return 0;
}
Est-ce que B::i
est bien formé?
Ou ne pas déranger avec l'héritage multiple en premier lieu. – Ron
@Ron - Parfois, tu dois faire ce que tu dois faire. – StoryTeller