Informix Error -4033: Base member name "name" cannot be used for class name.
Cause and resolution
Base member name "name" cannot be used for class name.
This statement attempts to declare a class name, but it also specifies a DERIVED FROM clause. One of the members that is inherited from that base class is called name. The name of a class cannot be the same as the name of one of its members because the constructor function must use that name. Review the inheritance for this new class, and then choose a different name for it.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-4033 fires when a class declaration's own name matches a member inherited via its DERIVED FROM clause — per the official guidance, a class's name can't match one of its inherited
members, because the constructor function must use the class's own name.
- A class named the same as a member it inherits from its base class, per the official guidance — the direct, only cause.
Solutions / Resolution
- Review the inheritance for the new class, per the official guidance.
- Choose a different name for the class, per the official guidance.
Examples
A class name colliding with an inherited member
CLASS Base
DEFINE total DECIMAL
END CLASS
CLASS total DERIVED FROM Base
-- -4033: "total" is already an inherited member name
Corrected
CLASS OrderTotal DERIVED FROM Base
Diagnostic Checks
- Check the base class's members before naming a new derived class, and rename the class if it collides.
Related Errors / Related Topics
- -4023 — "A class cannot derive from itself." A related class-declaration error, about self-inheritance rather than a name colliding with an inherited member.
A class's own name collides with a member it inherits from its base class — rename the class.