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.