7

基本クラスと継承クラスの2つのクラスがあります。

基本クラス:

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にアクセスすることはできません。および/または-基本クラスで適切なコンストラクターが見つからないため、inheritedを手動で呼び出す必要があります

ちなみに、私はこの問題について半日かけて調査し、オンラインで良い情報を見つけました。これまでのところ何も役に立ちません。Delphi Prism Wikipedia( http://prismwiki.embarcadero.com/en/Constructors )でコンストラクターについて直接説明しているWebページも見つけました。

それで、あなたはそれをどのように正しくしますか?ありがとう、

4

1 に答える 1

5

ステートメント inherited constructor(aName); はそれを行う必要があります。

于 2011-08-29T20:38:25.160 に答える