为什么构造函数不能为虚函数
来源:互联网 发布:java 接口 抽象类 编辑:程序博客网 时间:2024/05/29 08:06
1.从存储空间角度
虚函数对应一个vtale,这个表的地址是存储在对象的内存空间的。如果将构造函数设置为虚函数,就需要到vtable中调用,可是对象还没有实例化,没有内存空间分配,如何调用。(悖论)
2.从使用角度
虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数本身就是要初始化实例,使用虚函数也没有实际意义。所以构造函数没有必要是虚函数。虚函数的作用在于通过父类的指针或者引用来调用它的时候能够变成调用子类的那个成员函数。而构造函数是在创建对象时自动调用的,不可能通过父类的指针或者引用去调用,因此也就规定构造函数不能是虚函数。3、从实现角度
vbtl在构造函数调用后才建立,因而构造函数不可能成为虚函数。
阅读全文
0 0
- 为什么构造函数不能为虚函数
- 为什么构造函数不能为虚函数
- 为什么构造函数不能为虚函数
- 构造函数为什么不能为虚函数
- 为什么构造函数不能为虚函数
- 为什么构造函数不能为虚函数
- 为什么构造函数不能为虚函数
- 为什么构造函数不能为虚函数
- 为什么构造函数不能为虚函数
- 为什么构造函数不能为虚函数
- 为什么构造函数不能为虚函数
- 为什么构造函数不能为虚函数
- 为什么构造函数不能为虚函数
- 为什么构造函数不能为虚函数
- 为什么构造函数不能为虚函数
- 构造函数为什么不能为虚函数
- 为什么构造函数不能声明为虚
- C++中构造函数为什么不能为虚函数
- Android 相关环境变量配置(包括JDK、SDK)
- 及杳
- 《上帝与新物理学》
- 剑指offer刷题---面试题11
- Fresco 框架的基本使用
- 为什么构造函数不能为虚函数
- Boolan C++设计模式 第三周笔记
- 自定义MVC框架(是一个分页案列 )
- Linux下ACE、xml解析库开发环境搭建
- openwrt学习要达到的基本目标
- 程序员,为什么写不好一份简历?
- VTK之引用计数详解
- JavaScript学习总结
- crond与crontab