全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2481
推到 Plurk!
推到 Facebook!

有關bcb與delphi的類別繼承及函式繼承問題(inherited)

缺席
jimmychn
一般會員


發表:3
回覆:21
積分:19
註冊:2002-09-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-09-05 13:08:48 IP:220.130.xxx.xxx 訂閱
由於在BCB中找不到看到DELPHI特有的 inherited 的函式,有點飲恨;
只好土法煉鋼,自己作,辦還是想請教高手是否有解? 感謝各位先進!

[code cpp]
//---------------------------------------------------------------------------
#pragma hdrstop
//---------------------------------------------------------------------------
#include "conio.h"
#include "iostream.h"
//---------------------------------------------------------------------------
#pragma argsused
//---------------------------------------------------------------------------
class TA {
public:
__fastcall TA(void) {}
virtual void __fastcall Show(char *str) {
cout << "TA:" << str << endl;
}
};
//---------------------------------------------------------------------------
class TB1 : public TA {
public:
__fastcall TB1(void):TA() {}
virtual void __fastcall Show(char *str){
cout << "TB1:" << str << endl;
}
};
//---------------------------------------------------------------------------
class TB2 : public TA {
public:
__fastcall TB2(void):TA() {}
virtual void __fastcall Show(char *str){
//inherited; //這是DELPHI特有的繼承父函數執行,
TA::Show(str); //因為C 找不到相關的指令,只好指定類別函數執行
//萬一父輩沒有,祖輩才有就麻煩了
cout << "TB2:" << str << endl;
}
};
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
TA *A =new TA();
TB1 *B1=new TB1();
TB2 *B2=new TB2();
cout << "==基礎類別的函數執行==\n";
A->Show("TEST A\n");
cout << endl;

cout << "==繼承類別的函數執行==\n";
B1->Show("TEST B1\n");
cout << endl;

cout << "==繼承類別的繼承函數執行==\n";
B2->Show("TEST B2\n");
cout << endl;

getch();
return 0;
}
//---------------------------------------------------------------------------
[/code]
------
>>>好心有好報
系統時間:2024-04-26 20:36:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!