看板 Programming 關於我們 聯絡資訊
※ [本文轉錄自 C_and_CPP 看板] 作者: superfriday (你偷try我帳號喔..~~) 看板: C_and_CPP 標題: [問題] 如何用父類別指標 call子類別函式?? 時間: Thu Aug 30 15:23:39 2007 我想請問一下 我有下面的case class A{ public: virturl void fun(){printf("this is A\n");} }; class B: public A{ void fun() {printf("this is B\n");} }; class C: public A{ void fun() {printf("this is C\n");} void myfun(){printf("this is my function\n");} } main(){ C obj; A* pobj=&obj; pobj->fun(); \\ 印出this is C pobj->??? \\如何印出this is my function?? } 我的問題是我要如何利用多型來call子類別的function(非virtual function)?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.41.122
vizshala:用模板實現 08/30 16:09
vizshala:也可以實現相同的功能 08/30 16:10
superfriday:不是很懂耶 sorry 我不會用模版 08/30 17:11
superfriday:有方法可以直接改嗎。?? 08/30 17:11
jaw109:不用改 08/30 23:42
jaw109:pobj->A::fun(); 即可 08/30 23:42
jaw109:oops 我看錯了..... 這應該是不可以的 08/30 23:43
jaw109:A*的定址能力到不了C的scope裡面 08/30 23:44
softwind:給A一個"鉤子" 看看能不能把責任交給子類別處理... 08/31 00:41
tinlans:要這樣設計的話只好用 dynamic_cast 了。 08/31 03:17
sunneo:smart ptr好像有做到這樣的處理吧 08/31 08:14
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.41.122
WPC001:((C*)pobj)->myfun() 61.64.208.163 09/10 00:20