作者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
1F:推 vizshala:用模板实现 08/30 16:09
2F:→ vizshala:也可以实现相同的功能 08/30 16:10
3F:推 superfriday:不是很懂耶 sorry 我不会用模版 08/30 17:11
4F:→ superfriday:有方法可以直接改吗。?? 08/30 17:11
5F:推 jaw109:不用改 08/30 23:42
6F:→ jaw109:pobj->A::fun(); 即可 08/30 23:42
7F:→ jaw109:oops 我看错了..... 这应该是不可以的 08/30 23:43
8F:→ jaw109:A*的定址能力到不了C的scope里面 08/30 23:44
9F:推 softwind:给A一个"钩子" 看看能不能把责任交给子类别处理... 08/31 00:41
10F:推 tinlans:要这样设计的话只好用 dynamic_cast 了。 08/31 03:17
11F:→ sunneo:smart ptr好像有做到这样的处理吧 08/31 08:14
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.41.122
12F:→ WPC001:((C*)pobj)->myfun() 61.64.208.163 09/10 00:20