Przykład

class BaseA { ... };
class BaseB : public BaseA { ... };
class BaseC : public BaseA { ... };

class Derived: public BaseB, public BaseC {
public:
void fnc(){}
};


Rozwiązanie
Nigdy nie wykonuj bezpośredniego dziedziczenia z więcej niż jednej klasy.

class BaseA { ... };
class BaseB : public BaseA { ... };
class BaseC : public BaseB { ... };

class Derived: public BaseC {
public:
void fnc(){}
};