請問寫過class的前輩.... |
尚未結案
|
biau
一般會員 發表:25 回覆:32 積分:21 註冊:2003-02-27 發送簡訊給我 |
我想寫兩個class ,分別是
class a 可以在主程式new出一個Panel
class b 繼承自a,可以在主程式new出Label,這個Label的上層是主程式new出的Panel
用途是要讓user不斷在panel上去new出許多的Label,而且一delete掉 panel 所有的Label也會跟著delete
因為必需要用class完成,我的寫法如下 主程式呼叫
a *a1 = new a(Form1); //new出 panel
b *b1 = new b(); //new出 Label,並指定上層是 a 但是在class b中的constructor似乎不認識class a 的panel指標
不知道是不是寫法有錯,或諸位大哥有沒有別的class寫法協助小弟完成這個class class a{
public: a(){};
a(TForm *f2){
ap = new TPanel (f2);
ap->Parent=f2;
}
protected:
TPanel *ap;
}; class b:public a{
public:
TLabel *bp;
b():a(){ bp = new TLabel (ap);
bp->Parent=ap;
bp->Caption="Label";
}
};
|
dan59314
中階會員 發表:121 回覆:107 積分:86 註冊:2002-08-16 發送簡訊給我 |
class a
{
public:
a(){};
a(TForm *f2)
{
ap = new TPanel (f2);
ap->Parent=f2;
}
TPanel *ap; //放在 protected 的話, Child class 將無法 Access.
protected: }; class b:public a
{
public:
TLabel *bp;
b(TPanel *ap):a()
{
bp = new TLabel (ap);
bp->Parent=ap;
bp->Caption="Label";
}
}; void __fastcall TForm1::Button1Click(TObject *Sender)
{
a *a1 = new a(Form1); //new出 panel
b *b1 = new b(a1->ap); //new出 Label,並指定上層是 a delete a1;
delete b1; }
|
dan59314
中階會員 發表:121 回覆:107 積分:86 註冊:2002-08-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |