5
私は次のように、基本クラスと継承クラスの2つのクラスを持っています。Delphi Phrismの継承クラスから基本クラスコンストラクタを正しく呼び出す方法
基本クラス:
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;
どんなにどのように私は、継承されたコンストラクタを使用して呼び出す、または再生するか、ソースファイルをコンパイルするときに次のエラーメッセージが表示されます。
- 継承されたコンストラクタが完了する前に、自己がアクセスすることはできません。そして/または - 基本クラスに適切なコンストラクタが見つからないため、手動継承の継承が必要です。
ところで、私はこの問題について研究して、良い情報をオンラインで見つけました。これまで何も助けてくれません。私はDelphi Prism Wikipedia(http://prismwiki.embarcadero.com/en/Constructors)のコンストラクタについて直接お話するWebページを見つけました。
それでは、どうすれば正しくできますか? おかげで、
@ CKでは、aNameは文字列ではなくcharの配列であるため、問題が発生しています。私は単に違反行を以下のように修正しました:継承コンストラクタ(aName.ToCharArray);できます。おかげで、 – ThN
命令 '継承;だけサブクラスのコンストラクタの初めにOKであるようだ – geekobi
あまりにも動作します。私がこれに答えた時ではない –