Re: [問題] 如何用父類別指標 call子類別函式??
※ 引述《swwu83.bbs@bbs.wretch.cc》之銘言:
> ※ 引述《superfriday.bbs@ptt.cc (你偷try我帳號喔..~~)》之銘言:
> > 作者: 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)??
可以用 C++ 的 dynamic_cast ...
if( C *pc = dynamic_cast<C *>(pobj) ) {
pc->myfun();
}
你可以參考一下這個網頁:
http://caterpillar.onlyfun.net/Gossip/CppGossip/dynamicCast.html
dreamer. =)
--
╭╢師大資訊。白色情迷╟┬─ ⊙ Origin : snow.ice.ntnu.edu.tw
├╨→ 140.122.77.49←╜╰─ ☆ From : alg.csie.ntnu.edu.tw
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章