Описание тега diamond-problem
В объектно-ориентированных языках программирования с множественным наследованием и организацией знаний проблема ромба - это неоднозначность, которая возникает, когда два класса B и C наследуются от A, а класс D наследуется от B и C.
Проблема алмаз является неоднозначность, которая возникает, когда два класса B и C наследуют от A, а класс D наследует от обоих B и C.
Пример на C++:
/*
The Animal class below corresponds to class
A in our graphic above
*/
class Animal { /* ... */ }; // base class
{
int weight;
public:
int getWeight() { return weight;};
};
class Tiger : public Animal { /* ... */ };
class Lion : public Animal { /* ... */ }
class Liger : public Tiger, public Lion { /* ... */ };
int main( )
{
Liger lg ;
/*COMPILE ERROR, the code below will not get past
any C++ compiler */
int weight = lg.getWeight();
}