社区
C++ 语言
帖子详情
派生类继承的虚函数声明时还需要加virtual吗
kwovex
2009-05-21 09:21:40
在CDialog的派生类中好像是这样写的:
virtual void OnOK();
...全文
1463
11
打赏
收藏
派生类继承的虚函数声明时还需要加virtual吗
在CDialog的派生类中好像是这样写的: virtual void OnOK();
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
insulted
2009-05-21
打赏
举报
回复
为了后人,加上吧
AtlasHR
2009-05-21
打赏
举报
回复
可以省略,因为基类的某个函数声明为虚的之后,后面的派生类的这个函数自动就为虚的,但是写出,就是代码更清晰了,易读~
建议楼主去看看c++基础的c++类对象的内存结构,你就会明白了,其实还是很有意思的,网上资料也很多
pathuang68
2009-05-21
打赏
举报
回复
虚函数不管被继承多少次,依然是虚函数。在派生类中,可以不加virtual关键字,加也没有问题。
ericming200409
2009-05-21
打赏
举报
回复
可加可不加,效果一样,加上意义明确
ffvcff
2009-05-21
打赏
举报
回复
标准来写的话是要加virtual的
猫已经找不回了
2009-05-21
打赏
举报
回复
不加上也是虚的,写出来清晰点
papaofdoudou
2009-05-21
打赏
举报
回复
建议加上,费点儿劲儿而已
chenzhp
2009-05-21
打赏
举报
回复
建议写上吧。虽然不写也没有什么问题
biosli
2009-05-21
打赏
举报
回复
建议加上,如果还有孙子类,写孙子类的人就知道哪些是virtual了。
lori227
2009-05-21
打赏
举报
回复
派生类 virtual 不是必须的!! 加上 virtual 能显式的告诉你 这是个虚函数!
liliangbao
2009-05-21
打赏
举报
回复
可以省略,但是写出,就是代码更清晰了,易读~
C++语言基础视频教程
C++语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍C++语言中的封装、数据隐藏、
继承
、多态的实现等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、
继承
和派生、多态性实现等。课程
需要
有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。
【C++】
虚
函数、纯
虚
函数、抽象类,
派生类
虚
函数
加
不
加
virtual
定义一个函数为
虚
函数,不代表函数为不被实现的函数。 定义他为
虚
函数是为了允许用基类的指针来调用子类的这个函数。 定义一个函数为纯
虚
函数,才代表函数没有被实现 https://www.runoob.com/w3cnote/cpp-
virtual
-function.html c++规定,当一个成员函数被声明为
虚
函数后,其
派生类
中的同名函数都自动成为
虚
函数。因此,在子类重新声明该
虚
函数
时
,可以
加
,也可以不
加
,但习惯上每一层声明函数
时
都
加
virtual
,使程序更
加
清晰 ......
【c++】基类
派生类
多态
虚
函数?
如果
派生类
没有覆盖其基类中的某个
虚
函数,则该
虚
函数的行为类似于其他的普通成员,
派生类
会直接
继承
其在基类中的版本,
派生类
可以在它覆盖的函数前使用
virtual
关键字,但不是非得这么做(可有可无)。根据引用或指针所绑定的对象类型不同,该调用可能执行基类的版本,也可能执行某个
派生类
的版木,基类通过在其成员函数的声明语句之前
加
上关键字
virtual
使得该函数执行动态绑定。对于前者,基类通常将其定义为
虚
函数(virual)。
派生类
可以
继承
定义在基类中的成员,但是
派生类
的成员函数不一定有权访问从基类
继承
而来的成员。
c++
继承
基类
派生类
虚
函数
继承
类和类的关系有组合、
继承
和代理。
继承
的本质就是代码复用。子类
继承
父类中的一些东西,父类也称为基类,子类也称为
派生类
。
派生类
继承
了基类除构造函数以外的所有成员。
继承
的方式
继承
方式有public(公有
继承
)、private(私有
继承
)和protected(保护
继承
)。基类中不同访问限定符下(public、protected、private)的成员以不同的
继承
方式
继承
,在
派生类
中的访问限定也不同,具体如下: 基类的布局优先于
派生类
#include<iostream> class
【C++多态】
虚
函数与多态性
虚
函数仅在声明处
加
virtual
,定义处不
加
virtual
。设为
虚
函数意味着在
派生类
中可能有不同的实现,所以不建议重写
继承
来的非
虚
函数。
虚
函数父类和子类的声明必须完全一致!(包括参数类型、个数、顺序、返回值类型)否则只是函数覆盖。析构函数一般要设为
虚
函数,而构造函数不能设为
虚
函数。
虚
函数有默认值
时
*(静态绑定)*,
派生类
不能重新定义不同的值,即使定义,在多态
时
不起作用(正常调用
派生类
函数
时
仍然起作用)。使用基类指针又不想动态绑定
时
,可以在函数名前
加
【类名::】限定。
继承
了包含
虚
函数的多态类的
派生类
自动成为
C++ 语言
64,643
社区成员
250,474
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章