虚函数默认参数的问题记录

来源:互联网 发布:delphi lrc算法 编辑:程序博客网 时间:2024/05/22 14:56

 刚看了看项目里的问题,对虚函数默认参数的问题有点儿遗忘,翻了翻资料:

 

 

the result is: "i is 3"

 

原因:

为什么C++坚持这种有违常规的做法呢?答案和运行效率有关。如果缺省参数值被动态绑定,编译器就必须想办法为虚函数在运行时确定合适的缺省值,这将比现在采用的在编译阶段确定缺省值的机制更慢更复杂。做出这种选择是想求得速度上的提高和实现上的简便,所以大家现在才能感受得到程序运行的高效;当然,如果忽视了本条款的建议,就会带来混乱。

 

另外注意如果派生类的foo函数没有缺省函数,并且编写以下代码:

Derived d;

d.foo();

 

这样是编译不过去的

原创粉丝点击