Re: C++ overriding/overriding的問題

看板Programming作者 (殘雲奪月)時間18年前 (2008/02/13 16:12), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/8 (看更多)
※ 引述《sorryChen (陳揚和)》之銘言: : (OOP沒學好 見諒) : 問題是: : 定義了Class A..其中成員有一structure X : Class B 繼承 A 但想把裡面的structure改掉改成另一種struct Y : 那應該在Class B overload (用同名但型態不同的宣告.) : 原來的雖然會被蓋掉 但是contruct的時 是否還有X占空間? : 還是要用通用的指針..然後繼承的class裡面在new.. : 話說剛才發現另一個問題是 : 對一個function 同時overrideing 和 overloading編譯會有錯 : Class A 中定義method m(int i) : Class B繼承A overload method m(int i) : 又新定義 同名 m(char* c), 而且其中中還call m(int i) (等於用同名function包一層) : 結果編譯時有錯誤 說找不到定義或重複定義.. 問題一, X還是會佔空間 實驗: class A { int x; }; class B { char x; }; printf("%d %d\n",sizeof(A),sizeof(B)) 結果是4 1 改成 class A { int x; }; class B:public A { char x; }; 結果是4 8 為何是八之前有人問過,不過我不懂 DevC++的結果 問題二 因為你在B類別定義了m(char *) 他overriding了m(int ) 所以類別B沒m(int ) 你要呼叫類別A的m(int )須用 A::m(5); 有錯請指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.116.135.217
文章代碼(AID): #17igPMNx (Programming)
討論串 (同標題文章)
文章代碼(AID): #17igPMNx (Programming)