社区
C语言
帖子详情
很简单的问题,关于虚函数的继承
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
打赏
收藏
很简单的问题,关于虚函数的继承
比如有三个类 C继承B,B继承A A中有个虚函数funx() B,C中均重载了该虚函数 若 B b; b.funx()是否一定调用B::funx();? B *p; p->funx()则可能调用B::funx();或C::funx();不定? 初学者,想确认一下自己的认识 谢谢!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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()了。
微服务系列第七季-Java面向对象中的
继承
微服务应用是分布式开发的主要手段,它很好的解决了高并发等电商平台的
问题
。微服务系列课程是以Java语言为基础,以SpringCloud+SpringBoot为核心,结合Spring、SpringMVC及MyBatis,通过游戏案例、电商案例,以极简...
C++
虚函数
虚函数
继承
虚
继承
虚函数
:用来解决动态多态的
问题
的,
虚函数
就是在基类中声明函数是虚拟的,并不是实际存在的函数,然后在派生类中才正式定义此函数;
虚函数
作用:允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。
虚函数
继承
和虚
继承
是完全不同的两个概念。
虚函数
继承
是解决多态性的,当用基类指针指向派生类对象的时候,基类指针调用
虚函数
的时候会自动调用派生类的
虚函数
,这就是多态性,也...
虚函数
与多
继承
  2009年7月30日 kunlun 发表评论 阅读评论 链接: C++
虚函数
探索笔记(1)——
虚函数
的
简单
示例分析 C++
虚函数
探索笔记(2)——
虚函数
与多
继承
C++
虚函数
探索笔记(3)——延伸思考:
虚函数
应用的一些其他情形 关注
问题
:
虚函数
的作用
虚函数
的实现原理
虚函数
表在对象布局里的位置
虚函数
的类的sizeof 纯
虚函数
的作用 多级
继承
时的
虚函数
表...
C++之
虚函数
与虚
继承
详解
虚
继承
和
虚函数
是完全无相关的两个概念。 虚
继承
是解决C++多重
继承
问题
的一种手段,从不同途径
继承
来的同一基类,会在子类中存在多份拷贝。这将存在两个
问题
: 其一,浪费存储空间; 第二,存在二义性
问题
,通常可以将派生类对象的地址赋值给基类对象,实现的具体方式是,将基类指针指向
继承
类(
继承
类有基类的拷贝)中的基类对象的地址,但是多重
继承
可能存在一个基类的多份拷贝,这就出现了二义性。 虚
继承
可以解决多种
继承
前面提到的两个
问题
: 虚
继承
底层实现原理与编译器相关,一般通过虚基类指针和虚基类表实现,每个虚继
继承
中的
虚函数
与非
虚函数
在看公司代码时, 发现了一处关于
虚函数
的我比较难以理解的地方,大致描述如下: 子类
继承
父类, 包括
继承
了
虚函数
和非
虚函数
子类调用父类中的非
虚函数
Base::PrintWord(), 在这个非
虚函数
里它又调用了
虚函数
doPrintWord()。 实验表明调用的
虚函数
执行的是重写的子类
虚函数
。 大致的代码可以简写为以下一个例子:#include
using
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章