作者superfriday (你偷try我帳號喔..~~)
看板Programming
標題[問題] 如何用父類別指標 call子類別函式??
時間Fri Aug 31 12:43:19 2007
※ [本文轉錄自 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