type(s) preceding 'identifier' (constructor with return type, or illegal redefinition of current class-name?)
A constructor returns a value or redefines the class name.
Example
class C { public: int C(); // error, specifies an int return int C; // error, redefinition of i C(); // OK };