Effective C++ Third Edition 读书笔记 37
2010-06-26 17:16
197 查看
Item 37: Never redefine a function's inherited default parameter value
好久没写读书笔记了,今天先跳到37条吧,这条印象比较深,在C++ Primer、C++编程思想、C++ Programming Language这三本书里居然一时没找到答案,也需是英文版的缘故吧,以后买书没有特殊情况再不能买英文的了,太痛苦了。
言归正传,这条的主要思想是,如果在重载虚函数的时候使用了默认的参数,当使用多态的时候,函数体是动态绑定的,而这个输入参数是静态绑定的,也就是默认参数和基类指针的类型绑定的,所以子类里面定义的默认参数往往是不起作用的。
具体原因是C++实现时的效率和复杂度,貌似《深度探索C++对象模型》里面应该讲了,不过面试的时候还是不要扯这么多,免得曲高和寡,搞得面试官下不来台。
好久没写读书笔记了,今天先跳到37条吧,这条印象比较深,在C++ Primer、C++编程思想、C++ Programming Language这三本书里居然一时没找到答案,也需是英文版的缘故吧,以后买书没有特殊情况再不能买英文的了,太痛苦了。
言归正传,这条的主要思想是,如果在重载虚函数的时候使用了默认的参数,当使用多态的时候,函数体是动态绑定的,而这个输入参数是静态绑定的,也就是默认参数和基类指针的类型绑定的,所以子类里面定义的默认参数往往是不起作用的。
具体原因是C++实现时的效率和复杂度,貌似《深度探索C++对象模型》里面应该讲了,不过面试的时候还是不要扯这么多,免得曲高和寡,搞得面试官下不来台。
相关文章推荐
- Effective C++ Third Edition 读书笔记 2
- Effective C++ Third Edition 读书笔记 3
- Effective C++ Third Edition 读书笔记 4
- Effective C++ Third Edition 读书笔记 1
- 读书笔记 effective c++ Item 37 永远不要重新定义继承而来的函数默认参数值
- 第二章:内存管理(Effective C++ Second Edition 读书笔记)
- Effective C++ Second Edition 读书笔记
- “Effective C++ Third Edition”学习笔记(一)
- “Effective C++ Third Edition”学习笔记(二)
- “Effective C++ Third Edition”学习笔记(三)
- 第三章:构造函数,析构函数和赋值操作(Effective C++ Second Edition 读书笔记)
- 第四章 类和函数:设计与声明(Effective C++ Second Edition 读书笔记)
- 第五章 类和函数:实现(Effective C++ Second Edition 读书笔记)
- 读书笔记之Effective C++ 2nd Edition
- 第一章:从C转向C++ (Effective C++ Second Edition 读书笔记)
- 第六章 继承和面向对象设计 (Effective C++ Second Edition 读书笔记)
- 《C++ primer Third edition》读书笔记
- “Effective C++ Third Edition”学习笔记(四)
- 条款31: 千万不要返回局部对象的引用,也不要返回函数内部用new初始化的指针的引用 (转自effective c++ second edition)
- 读书笔记_Effective_C++_条款十五:在资源类管理类中提供对原始资源的访问