社区
资源
帖子详情
请问构造函数中能否调用虚函数,为什么?
freebeekf
2002-11-09 01:11:25
help
...全文
68
1
打赏
收藏
请问构造函数中能否调用虚函数,为什么?
help
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dominolili
2002-11-09
打赏
举报
回复
不行,对象没有构造好
300道C++题目
300道C++题目
构造函数
中
为什么不能
调用
虚函数
?
构造函数
中
为什么不能
调用
虚函数
?
构造函数
调用
层次会导致一个有趣的两难选择。试想:如果我们在
构造函数
中
并且
调用
了
虚函数
,那么会发生什么现象呢?在普通的成员函数
中
,我们可以想象所发生的情况——
虚函数
的
调用
是在运行时决定的。这是因为编译时这个对象并不能知道它是属于这个成员函数所在的那个类,还是属于由它派生出来的某个类。于是,我们也许会认为在
构造函数
中
也会发生同样的事情。 然而,情况并非如此。对于在...
构造函数
为什么不能为
虚函数
?
构造函数
为什么不能
调用
虚函数
?
构造函数
与
虚函数
请问
构造函数
中
的能不能
调用
虚方法?
最好不要在
构造函数
中
调用
虚方法,从语法上讲,
调用
完全没有问题;但是从效果上看,往往不能达到目的。 派生类对象构造期间进入基类的
构造函数
时,对象类型变成了基类类型,而不是派生类类型。 同样,进入基类析构函数时,对象也是基类类型。 所以,
虚函数
始终是仅仅
调用
基类的
虚函数
(如果是基类
调用
虚函数
),不能达到多态的效果,所以放在
构造函数
中
是没有意义的,而且往往不能达到本来想要的效果。 ...
C++
中
为什么
构造函数
和析构函数不允许
调用
虚函数
?
在C++
中
,
构造函数
不允许
调用
虚函数
,这一规定是基于对象构造过程的安全性和一致性考虑。在对象未完全构造时
调用
虚函数
,可能引发未定义行为,破坏程序的正确性。因此,我们应遵循这一规定,通过成员初始化列表、两阶段构造、工厂模式等替代方案,确保对象的正确初始化和多态行为的实现。
资源
2,586
社区成员
18,436
社区内容
发帖
与我相关
我的任务
资源
VC/MFC 资源
复制链接
扫一扫
分享
社区描述
VC/MFC 资源
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章