为什么构造函数不能是虚函数?

[复制链接]
查看11 | 回复3 | 2009-6-11 12:19:18 | 显示全部楼层 |阅读模式
虚函数用于动态联编,是在运行是通过类型来觉得函数的调用~而构造函数是在类型完成内存分配之前调用的,不可能知道是哪个类型,所以不能为虚函数...
回复

使用道具 举报

千问 | 2009-6-11 12:19:18 | 显示全部楼层
构造函数不能声明为虚函数的原因是:所谓虚函数就是多态情况下只执行一个,而从继承的概念来讲,总是要先构造父类对象,然后才能是子类对象,如果构造函数设为虚函数,那么当你在构造父类的构造函数时就不得不显示的调用构造,还有一个原因就是为了防错,试想如果你在子类中一不小心重写了个跟父类构造函数一样的函数,那么你的父类的构造函数将被覆盖,也即不能完成父类的构造.就会出...
回复

使用道具 举报

千问 | 2009-6-11 12:19:18 | 显示全部楼层
//构造函数不被继承,也就不能被重写,所以.......
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行