关注
第一个问题找了一下答案: 为什么构造函数不能是虚函数? 从vptr角度解释 虚函数的调用是通过虚函数表来查找的,而虚函数表由类的实例化对象的vptr指针指向,该指针存放在对象的内部空间中,需要调用构造函数完成初始化。如果构造函数是虚函数,那么调用构造函数就需要去找vptr,但此时vptr还没有初始化! 从多态角度解释 1.虚函数主要是实现多态,在运行时才可以明确调用对象,根据传入的对象类型来调用函数; 2.构造函数是在创建对象时自己主动调用的,不可能通过父类的指针或者引用去调用,那使用虚函数也没有实际意义; 3.调用构造函数时还不能确定对象的真实类型(由于子类会调父类的构造函数); 4.构造函数的作用是提供初始化,在对象生命期仅仅运行一次,不是对象的动态行为,没有必要成为虚函数。
查看原帖
点赞 评论
相关推荐
04-25 22:56
电子科技大学中山学院 C++ 点赞 评论 收藏
分享
查看21道真题和解析 点赞 评论 收藏
分享
04-03 22:41
兰州大学 C++ 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 这个offer值得去吗? #
13137次浏览 149人参与
# 金三银四,你的春招进行到哪个阶段了? #
35209次浏览 330人参与
# 联宝杯大学生创新大赛,你的技术值得产业级答案 #
45929次浏览 509人参与
# 如果春招能重来,我会___ #
14727次浏览 179人参与
# 校招第一份工作你干了多久? #
152830次浏览 640人参与
# 除了线上,还能去哪些地方投简历 #
8406次浏览 99人参与
# 硬件人秋招进展 #
292020次浏览 4042人参与
# 你觉得实习能学到东西吗 #
153171次浏览 1480人参与
# 搜狐工作体验 #
6790次浏览 54人参与
# 反问环节如何提问 #
141345次浏览 2740人参与
# 想做Agent可以做哪些岗位? #
12577次浏览 407人参与
# 招银网络科技(深圳)有限公司成都分公司笔试 #
6027次浏览 23人参与
# 面试官拷打AI项目都会问什么? #
11621次浏览 410人参与
# 你觉得最好用的AI编程工具是_ #
4531次浏览 94人参与
# 哔哩哔哩笔试 #
42291次浏览 166人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
13986次浏览 79人参与
# 你实习是赚钱了还是亏钱了? #
127222次浏览 715人参与
# 大厂还是考编 #
134481次浏览 1398人参与
# 非技术岗简历怎么写 #
338630次浏览 3301人参与
# 机械人选offer,最看重什么? #
180861次浏览 873人参与
# 入职第一天,你准备什么时候下班 #
122911次浏览 525人参与
