社区
C++ 语言
帖子详情
可否在构造函数中调用析构函数
pan2008
2003-08-19 12:21:53
构造函数中进行数据初始化处理失败时,
我想销毁该类的实例,
可否在构造函数中调用析构函数
...全文
100
3
打赏
收藏
可否在构造函数中调用析构函数
构造函数中进行数据初始化处理失败时, 我想销毁该类的实例, 可否在构造函数中调用析构函数
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lak47
2003-08-19
打赏
举报
回复
可以调,但最好别这样调
new1mm
2003-08-19
打赏
举报
回复
the constructor is not allowed to failure,
if one operator may be failure, please write initialize function to implemention it.
liuyuw
2003-08-19
打赏
举报
回复
应该可以的,但我没试过,觉得没用。
构造函数
、
析构函数
中
是否可以
调用
虚函数?
题目:
构造函数
、
析构函数
中
是否可以
调用
虚函数? 答案是:不能。原因如下: 构造派生类对象时,首先
调用
基类
构造函数
初始化对象的基类部分。在执行基类
构造函数
时,对象的派生类部分是未初始化的。实际上,此时的对象还不是一个派生类对象。析构派生类对象时,首先撤销/析构他的派生类部分,然后按照与构造顺序的逆序撤销他的基类部分。 因此,在运行
构造函数
或者
析构函数
时,对象都是不完整的。为了适应这种不完...
C++
中
构造函数
与
析构函数
的
调用
构造函数
与
析构函数
调用
顺序
构造函数
、
析构函数
能否
调用
虚函数
从理论上来讲,
构造函数
和
析构函数
是可以
调用
虚函数的,但实际应用上不应该
调用
在Effective C++09
中
有说明了一这点,当派生类继承了基类的时候,生成一个派生类对象的时候,首先会
调用
基类的
构造函数
生成基类的部分,但
构造函数
里面如果有虚函数,这时候
调用
的是基类的虚函数,不会下降到派生类的阶层,可以从以下几个角度理解 在执行基类
构造函数
的时候,派生类的成员变量完全未初始化,那么如果此时
调用
的是派生类的虚函数,如果里面
调用
了派生类的成员变量,那么就导致出现错误 派生类对象在基类构造期间,会被认为是一个基类
构造函数
和
析构函数
可以
调用
虚函数吗
不能。这个问题来自于《Effective C++》条款9:永远不要在
构造函数
或
析构函数
中
调用
虚函数 。 简要结论: 1. 从语法上讲,
调用
完全没有问题。 2. 但是从效果上看,往往不能达到需要的目的。 Effective 的解释是: 派生类对象构造期间进入基类的
构造函数
时,对象类型变成了基类类型,而不是派生类类型。 同样,进入基类
析构函数
时,对象也是基类类型。 在基类的构造过程
中
...
C++类
中
的6个默认函数之
构造函数
、
析构函数
、拷贝
构造函数
、赋值运算符重载函数
类
中
6个默认函数,如果在定义类时没有定义这6个函数的某几个,编译器会提供相应的默认函数, 如果定义了这6个函数的某几个,编译器则不会提供相应的默认函数, 系统提供的这6个默认函数都是公有的,都是内联的
构造函数
析构函数
拷贝
构造函数
赋值运算符重载函数 取地址操作符重载函数 const修饰的取地址操作符重载函数
构造函数
1.
构造函数
与类名相同,并且没有返回值 2.
构造函数
只能系统
调用
,不能手动
调用
构造函数
3.
构造函数
有this指针 4.
构造函数
可以重载
析构函数
1.
析构函数
的函数名是~+类名(例:c
C++ 语言
64,632
社区成员
250,955
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章