Compiler Error C2380

type(s) preceding 'identifier' (constructor with return type, or illegal redefinition of current class-name?)

The specified constructor returned a value or redefined the class name.

A constructor cannot specify a return value.

This error can be caused by redefining a class name.

The following is an example of this error:

class C
{
public:
   int C();  // error, specifies an int return
   int C;    // error, redefinition of i
   C();      // OK
};