请问构造函数为什么不能是虚函数?
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/08/15 22:05:19
请问构造函数为什么不能是虚函数?
![请问构造函数为什么不能是虚函数?](/uploads/image/z/14828894-62-4.jpg?t=%E8%AF%B7%E9%97%AE%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E8%83%BD%E6%98%AF%E8%99%9A%E5%87%BD%E6%95%B0%3F)
最近有人问构造函数能不能是虚函数:当然不能解释一下:
1,从存储空间角度
虚函数对应一个 vtable,这大家都知道,可是这个 vtable 其实是存储在对象的内
存空间的.问题出来了,如果构造函数是虚的,就需要通过vtable 来调用,可是对象还没有
2,从使用角度
虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用.构造函数
本身就是要初始化实例,那使用虚函数也没有实际意义呀.所以构造函数没有必要是虚函数.
1,从存储空间角度
虚函数对应一个 vtable,这大家都知道,可是这个 vtable 其实是存储在对象的内
存空间的.问题出来了,如果构造函数是虚的,就需要通过vtable 来调用,可是对象还没有
2,从使用角度
虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用.构造函数
本身就是要初始化实例,那使用虚函数也没有实际意义呀.所以构造函数没有必要是虚函数.