关注
第一个问题找了一下答案: 为什么构造函数不能是虚函数? 从vptr角度解释 虚函数的调用是通过虚函数表来查找的,而虚函数表由类的实例化对象的vptr指针指向,该指针存放在对象的内部空间中,需要调用构造函数完成初始化。如果构造函数是虚函数,那么调用构造函数就需要去找vptr,但此时vptr还没有初始化! 从多态角度解释 1.虚函数主要是实现多态,在运行时才可以明确调用对象,根据传入的对象类型来调用函数; 2.构造函数是在创建对象时自己主动调用的,不可能通过父类的指针或者引用去调用,那使用虚函数也没有实际意义; 3.调用构造函数时还不能确定对象的真实类型(由于子类会调父类的构造函数); 4.构造函数的作用是提供初始化,在对象生命期仅仅运行一次,不是对象的动态行为,没有必要成为虚函数。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 今年春招是金一银二嘛? #
26524次浏览 246人参与
# 机械制造2024笔面经 #
1514876次浏览 12994人参与
# 牛客吐槽大会 #
9874次浏览 179人参与
# 帆软软件工作体验 #
10017次浏览 43人参与
# 没关系,至少我的__很曼妙 #
11237次浏览 170人参与
# 软开人,秋招你打算投哪些公司呢 #
176058次浏览 1308人参与
# AI求职实录 #
16402次浏览 388人参与
# 抛开难度不谈,你最想去哪家公司? #
14666次浏览 213人参与
# 快手年终开大包 #
3754次浏览 50人参与
# 赚钱的意义在这一刻具象化 #
11165次浏览 211人参与
# 为什么有人零实习也能进大厂? #
13692次浏览 236人参与
# 你的第一家实习公司是什么档次? #
12310次浏览 132人参与
# 总结:哪家公司面试体验感最好 #
79625次浏览 445人参与
# 1月小结:你过的开心吗? #
4854次浏览 83人参与
# AI时代的工作 VS 传统时代的工作,有哪些不同? #
15905次浏览 362人参与
# Prompt分享 #
17354次浏览 401人参与
# 当你问AI“你会取代我的工作吗”,它说_? #
8617次浏览 230人参与
# 实习生活中那些难忘的瞬间 #
293139次浏览 3222人参与
# 实习最想跑路的瞬间 #
112968次浏览 694人参与
# 你的landing期是如何度过的? #
15029次浏览 329人参与

