社区
C++ 语言
帖子详情
虚析构函数?
l_y_s
2004-10-22 11:22:58
虚析构函数是怎么定义的?
有什么功能?
为什么要它?
构造函数为什么不可以为虚构造函数?
...全文
111
8
打赏
收藏
虚析构函数?
虚析构函数是怎么定义的? 有什么功能? 为什么要它? 构造函数为什么不可以为虚构造函数?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yjh1982
2004-10-22
打赏
举报
回复
可以用基类指针正常删除派生类.
kenyle
2004-10-22
打赏
举报
回复
思考ing
freshairfly
2004-10-22
打赏
举报
回复
1、如果一个类定义了虚析构函数就说明这个类可以被继承
ClassBase *base = new ClassFromBase;
(ClassFromBase从ClassBase继承);
delete base时,如果ClassBase的析构函数为虚函数,则先调用ClassFromBase的析构函数,然后再调用ClassBase的析构函数
否则,只会调用ClassBase的析构函数
2、一个实例化一个类对象时,是要具体指定的,所以没必要使用多态(即虚构造函数),并且在派生类的构造函数里,会自动调用父类的缺省构造函数
wxsdragon
2004-10-22
打赏
举报
回复
virtual ~test();
因为同一个对象可以有不同的析构方式!
构造函数是在对象建立之前调用的.次是对象还不存在,所以不能用虚构造函数
alongfly
2004-10-22
打赏
举报
回复
在构造函数前还没有虚拟函数表,不能得到虚拟调用指针,所以构造函数不能为虚函数。
tsohg
2004-10-22
打赏
举报
回复
构造函数不可以用虚函数,具体为什么说不上来;
析构函数一般为虚函数:例如:
ClassBase * base=new ClassFromBase;
(ClassFromBase从ClassBase继承);
那么在delete base时,如果ClassBase的析构函数为虚函数,则调用ClassFromBase的析构函数;否则则调用ClassBase的析构函数!
charlescao
2004-10-22
打赏
举报
回复
1.派生类不继承基类的构造函数,因此将类构造函数声明为虚拟的没有什么意义
2.析构函数应当是虚拟函数,这样可以确保正确的析构函数序列被调用
daylove
2004-10-22
打赏
举报
回复
1、在析构函数前加 virtual 关键字。
2、同意: 回复人: yjh1982(血精灵) ( ) 信誉:105
3、大师说这样用才是好习惯
4、应该构造函数不可以被继承,所以没有必要为 virtual
C#系列课程面向对象篇
这个是继《C#系列课程之基础知识入门篇》的篇,主要讲解的是C#中面向对象的有关知识,主要有类,接口,继承,多态,
构
造
函数
,
析
构
函数
,密封类,属性,抽象,结
构
体,枚举,静态类,部分类等等有关面向对象的专业...
什么时候要用
虚
析
构
函数
?
什么时候要用
虚
析
构
函数
? 通过基类的指针来删除派生类的对象时,基类的
析
构
函数
应该是
虚
的。否则其删除效果将无法实现。 一般情况下,这样的删除只能够删除基类对象,而不能删除子类对象,形成了删除一半形象,...
虚
析
构
函数
1、什么是
虚
析
构
函数
? 将一个类的
虚
函数
定义成
虚
函数
,这个
析
构
函数
就叫
虚
析
构
函数
。 注意:不允许以
虚
函数
作为
构
造
函数
2、为什么提倡把带有
虚
函数
的类的
析
构
函数
写为
虚
析
构
函数
通过基类的指针删除派生类对象...
C++——
虚
函数
、
虚
析
构
函数
、纯
虚
函数
、抽象类
1、什么是
虚
析
构
函数
? 2、
虚
析
构
函数
的作用 3、
构
造
函数
4、为什么
构
造
函数
不能是
虚
函数
? 5、
构
造
函数
和
虚
析
构
函数
的联系 6、为什么程序员不能调
构
造
函数
,但是可以调用
析
构
函数
? 7、
虚
析
构
...
为什么基类中的
析
构
函数
要声明为
虚
析
构
函数
?
为什么基类中的
析
构
函数
要声明为
虚
析
构
函数
? 解答 用对象指针来调用一个
函数
,有以下两种情况: 如果是
虚
函数
,会调用派生类中的版本。如果是非
虚
函数
,会调用指针所指类型的实现版本。
析
构
函数
也会...
C++ 语言
64,683
社区成员
250,490
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章