构造函数继承问题

时间:2010-08-04 12:01:56

标签: delphi

我有两个类,一个基类和一个派生类。我的基类有一个这种形式的构造函数:

constructor TBaseClass.CreateFromXML(ANode: IXMLNode);
begin

  Create;

  //Set members from XML

end;

我的派生类有一个这种形式的构造函数:

constructor TDerivedClass.Create;
begin

   FDatabaseID = -1;

end;

我的问题是,当我使用基类[TDerivedClass.CreateFromXML(Node);]中的构造函数创建派生类的对象时,在CreateFromXML构造函数开头调用的Create不是我派生类中的Create,而是而是我的基类从TObject继承的那个。

是否有可能让基类构造函数调用我的派生类构造函数,即使它进一步“向下”继承链?

1 个答案:

答案 0 :(得分:8)

尝试在TBaseClass中声明constructor Create; virtual;。不要忘记将“派生”构造函数标记为override