Larry Lustig
Larry Lustig

Reputation: 50970

Constructor inheritance issue

I have two classes, a base class and a derived class. My base class has a constructor of this form:

constructor TBaseClass.CreateFromXML(ANode: IXMLNode);
begin

  Create;

  //Set members from XML

end;

My derived class has a constructor of this form:

constructor TDerivedClass.Create;
begin

   FDatabaseID = -1;

end;

My problem is that when I create an object of my derived class using the constructor from the base class [ TDerivedClass.CreateFromXML(Node); ] the Create called at the beginning of the CreateFromXML constructor is not the one from my derived class, but rather the one inherited by my base class from TObject.

Is it possible to get the base class constructor to call my derived class constructor even though it's further "down" the inheritance chain?

Upvotes: 3

Views: 385

Answers (1)

Uli Gerhardt
Uli Gerhardt

Reputation: 14001

Try declaring a constructor Create; virtual; in TBaseClass. Don't forget to mark the "derived" constructor as override.

Upvotes: 9

Related Questions