'identifier1' : 'identifier2' is already a direct base class
The specified class (or structure) appeared more than once in a list of base classes for a derived class.
A class is called a direct base if it is mentioned in the base list. A class is called an indirect base if it is not a direct base but is a base class of one of the classes mentioned in the base list.
A class cannot be specified as a direct base class more than once. A class can be used as an indirect base class more than once.
The following is an example of this error:
class A { };
class B : public A, public A { }; // error
class C : public A { };
class D : public A { };
class E : public C, public D { }; // OK, contains two As