2011-08-29 11 views
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ページを見つけました。

それでは、どうすれば正しくできますか? おかげで、

答えて

4

継承されたコンストラクタ(もしaName)がそれを行う必要があります。

+0

@ CKでは、aNameは文字列ではなくcharの配列であるため、問題が発生しています。私は単に違反行を以下のように修正しました:継承コンストラクタ(aName.ToCharArray);できます。おかげで、 – ThN

+0

命令 '継承;だけサブクラスのコンストラクタの初めにOKであるようだ – geekobi

+0

あまりにも動作します。私がこれに答えた時ではない –

関連する問題