关注
第一个问题找了一下答案: 为什么构造函数不能是虚函数? 从vptr角度解释 虚函数的调用是通过虚函数表来查找的,而虚函数表由类的实例化对象的vptr指针指向,该指针存放在对象的内部空间中,需要调用构造函数完成初始化。如果构造函数是虚函数,那么调用构造函数就需要去找vptr,但此时vptr还没有初始化! 从多态角度解释 1.虚函数主要是实现多态,在运行时才可以明确调用对象,根据传入的对象类型来调用函数; 2.构造函数是在创建对象时自己主动调用的,不可能通过父类的指针或者引用去调用,那使用虚函数也没有实际意义; 3.调用构造函数时还不能确定对象的真实类型(由于子类会调父类的构造函数); 4.构造函数的作用是提供初始化,在对象生命期仅仅运行一次,不是对象的动态行为,没有必要成为虚函数。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 秋招开始捡漏了吗 #
13808次浏览 74人参与
# 今年秋招还有金九银十吗 #
17639次浏览 134人参与
# “vivo”个offer #
46444次浏览 310人参与
# 秋招,不懂就问 #
331578次浏览 1986人参与
# 辞职后的日常 #
15592次浏览 84人参与
# 上班后,才发现大学__白学了 #
2089次浏览 22人参与
# 满帮集团求职进展汇总 #
7988次浏览 71人参与
# 打工人的精神状态 #
101090次浏览 1309人参与
# 分享一个让你热爱工作的瞬间 #
43349次浏览 395人参与
# 上班到公司第一件事做什么? #
98768次浏览 681人参与
# 学历对求职的影响 #
550437次浏览 3904人参与
# 实习期间如何提升留用概率? #
189849次浏览 1606人参与
# 一人一个landing小技巧 #
127561次浏览 1463人参与
# 我和mentor的爱恨情仇 #
79310次浏览 434人参与
# 学历or实习经历,哪个更重要 #
192453次浏览 1026人参与
# 海信求职进展汇总 #
84986次浏览 408人参与
# 秋招结束之后的日子 #
100042次浏览 1011人参与
# 被同事甩锅了怎么办 #
25227次浏览 100人参与
# 数字马力求职进展汇总 #
211844次浏览 1677人参与
# 和mentor 1on1 都聊什么? #
3940次浏览 22人参与
# 你见过哪些工贼行为 #
32132次浏览 151人参与
查看22道真题和解析
