Wikipédia sur le problème du diamant: » ... le problème de diamant est une ambiguïté qui se pose lorsque deux classes B et C de A hériteront, et la classe D hérite à la fois B et C. Si une méthode dan
j'ai quelque chose comme ça (simplifié) class A
{
public:
virtual void Function() = 0;
};
class B
{
public:
virtual void Function() = 0;
};
class Impl : public A , public B
Problème étrange est survenu lorsque j'ai essayé de « résoudre » problème de diamant d'habitude de manière habituelle - en utilisant l'héritage virtuel: A
/\* both virtual
B C
\/
D
Cependant,
est-il un moyen de définir une classe Foo en C++ afin que je peux hériter de ce Je ne peux pas « Hériter de diamant » de celui-ci Ie class Cat: public Foo{} // okay
class Dog: public Foo{} // okay
c