有關bcb與delphi的類別繼承及函式繼承問題(inherited) |
缺席
|
jimmychn
一般會員 發表:3 回覆:21 積分:19 註冊:2002-09-09 發送簡訊給我 |
由於在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]
------
>>>好心有好報 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |