绝不重新定义继承而来的缺省参数值
2013-10-31 09:10
309 查看
在effective C++ 条款37:绝不重新定义继承而来的缺省参数值
绝对不要重新定义一个继承而来的缺省参数值,因为缺省参数值都是静态绑定,而virtual函数-你唯一应该覆写的东西-却是动态绑定.
/article/10925986.html
#include "iostream" using namespace std; class base{ public: virtual void fun(int i=1){ cout<<"base::"<<i<<endl; } }; class derive:public base { private: virtual void fun(int i=2){ cout<<"derive::"<<i<<endl; } }; int main(int argc, char const *argv[]) { base *test = new derive(); test->fun();//此时输出的i仍然是1,而不是derive里面的2 return 0; }
绝对不要重新定义一个继承而来的缺省参数值,因为缺省参数值都是静态绑定,而virtual函数-你唯一应该覆写的东西-却是动态绑定.
/article/10925986.html
相关文章推荐
- Effective C++:条款37:绝不重新定义继承而来的缺省参数值
- 条款37:绝不重新定义继承而来的缺省参数
- 绝不重新定义继承而来的缺省参数值--from Effective c++ item 37
- 条款37:绝不重新定义继承而来的缺省参数值
- 条款37:绝不重新定义继承而来的缺省参数
- C++ 绝不重新定义继承而来的非虚(non-virtual)函数
- effective C++ 条款 36:绝不重新定义继承而来的non-virtual函数
- effective C++中条款37:绝不重新定义继承而来的缺省参数值
- C++ 绝不重新定义继承而来的缺省参数值
- Effective C++:条款36:绝不重新定义继承而来的non-virtual函数
- [EffectiveC++]item37:绝不重新定义继承而来的缺省参数值
- 条款37:绝不重新定义继承而来的缺省参数值
- 条款36:绝不重新定义继承而来的非虚函数
- 条款36、绝不重新定义继承而来的缺省参数值
- Item 37:绝不重新定义继承而来的缺省参数值
- effective C++ 条款 37:绝不重新定义继承而来的缺省参数值
- 绝不重新定义继承而来的non-virtual函数
- Effective C++:绝不重新定义继承而来的缺省参数值
- Effective C++条款37:绝不重新定义继承而来的缺省参数值
- 条款36:绝不重新定义继承而来的non-virtual函数