Описание тега 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();  
}