Compiler Error C2533
'identifier' : constructors not allowed a return type
A constructor cannot have a return type (not even a void
return type).
A common source of this error is a missing semicolon between the end of a class definition and the first constructor implementation. The compiler sees the class as a definition of the return type for the constructor function, and generates C2533.
The following sample generates C2533, and shows how to fix it:
// C2533.cpp
// compile with: /c
class X {
public:
X();
};
int X::X() {} // C2533 - constructor return type not allowed
X::X() {} // OK - fix by using no return type