'identifier' : is not a legal base class
The specified identifier was not a class (or structure) but was used to derive a class.
A class can be derived only from classes. This error can be caused by naming a variable or type in the base class list.
The following is an example of this error:
class B { };
class D : public B { }; // OK, D is derived from B
typedef int I;
class E : public I { }; // error, I is not a class