很简单的问题,关于虚函数的继承

mayuhao 2003-03-20 10:02:25
比如有三个类
C继承B,B继承A
A中有个虚函数funx()
B,C中均重载了该虚函数

B b;
b.funx()是否一定调用B::funx();?
B *p;
p->funx()则可能调用B::funx();或C::funx();不定?
初学者,想确认一下自己的认识
谢谢!!!
...全文
25 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
skevin 2003-03-20
  • 打赏
  • 举报
回复
B *p;
p->funx(),应该是一定调用b::funx()吧?
我也不明白了?
fang_jb 2003-03-20
  • 打赏
  • 举报
回复
最后那个指针指到哪个实例上,就是调用的谁的函数
TopCat 2003-03-20
  • 打赏
  • 举报
回复
应该说你的理解是对的。

不过第二例也不能说是“不定”吧,当你生成实体的时候就确定了。

比如 p = new C;
那一定是调用C::funx()了。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧