7

我有两个类 - 基类和继承类,如下所示。

基类:

TAlarm = class(System.Object)
private:
protected:
public:
    constructor (tag:TTagname);
end;

继承类:

  TAlarmMsg = class(TAlarm)
  public
    constructor (aname:string);
    method GetAlarmMsg:string; override;
    method SendMsg(msg:string);
  end;

构造函数:

constructor TAlarm(tag:TTagname);
begin
  Tagname := tag;
end;

constructor TAlarmMsg(aname:string);
begin
  inherited TAlarm(aname); <========Here is my problem.
  name := aname.ToCharArray;
end;

无论我调用什么或如何调用或使用继承的构造函数,编译源文件时都会收到以下错误消息。

- 在继承的构造函数完成之前无法访问 Self。和/或 - 在基类中找不到合适的构造函数,因此需要手动调用继承

顺便说一句,我花了半天时间研究这个问题,并在网上找到了很好的资料。到目前为止没有任何帮助。我什至在 Delphi Prism Wikipedia ( http://prismwiki.embarcadero.com/en/Constructors )上找到了直接讨论构造函数的网页。

那么,你将如何正确地做到这一点?谢谢,

4

1 回答 1

5

声明 inherited constructor(aName); 应该这样做。

于 2011-08-29T20:38:25.160 回答