看板 Programming 關於我們 聯絡資訊
我試了一下 好像不行(雖然我的用法有點怪怪的 我用Visual C++.net) Class C 繼承 Class B 繼承 Class A Class A定義了function f1() f2() f1()中會Call f2() 我現在在Class C中define 同名同參數的f2() 假設叫他f2'() 希望 在call C.A1()時 會自動Call f2'(); 而不是f2(); 這樣有可能嗎 如果可以其實有點小危險 就是子class不小心Override 爺爺輩以上的同名程式... (可能不知道爺爺輩以上有什麼method..) 真是非常感謝版友們的回答阿 ..C++有Virtual..所以確定要下Virtual 才是真正Overrideing 而不是hiding.. 但是對於爺爺輩以上 好像還是不行..(我試的結果.. 應該友其他方法才是 ※ 引述《horngsh (要公理要正義)》之銘言: : ※ 引述《sorryChen (陳揚和)》之銘言: : : 但爺爺層的好像不行 C++當中是不是沒有Override的關鍵字阿 : : 所以我沒辦法讓 子層的method把 "爺爺"層的overrides.. : : 這樣的desgin不知道是否合理就是了 : 不好意思, 你問的是C++, 我以為是C#, 在C++中要覆寫父層以上的方法 : 只要在衍生類別中用相同的簽名加上方法定義即可 : (不用再加virtual, 除非你以後還要讓再衍生的類別再覆寫) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 128.125.87.33
KKeiko:沒有使用 pointer or reference 型別? 140.116.82.38 06/17 12:33
horngsh:有空時我用C++.Net來小測一下. 59.126.181.10 06/17 14:23