条款37:绝不重新定义继承而来的缺省参数值
2010-03-19 18:00
295 查看
问题代码:
修改后:
class Shape{ public: enum Color{RED,GREEN,BLUE}; virtual void draw(Color color = RED)const = 0; ... }; class Circle:public Shape{ public: virtual void draw(Color color = GREEN)const{ ... } }; class Rectangle:public Shape{ public: virtual void draw(Color color)const{ ... } }; Shape* ps; Shape* pc = new Circle; Shape* pr = new Rectangle; //问题 pc->draw(); //Circle::draw(RED)
修改后:
class Shape{ public: enum Color{RED,GREEN,BLUE}; void draw(Color color = RED) const{ ... doDraw(color); ... } ... private: virtual void doDraw(Color color) const = 0; }; class Circle:public Shape{ ... private: virtual void doDraw(Color color){ ... } };
相关文章推荐
- 《effective C++》:条款37——绝不重新定义继承而来的缺省参数值
- 条款37:绝不重新定义继承而来的缺省参数值(Never redefine a function's inherited default parameter value)
- 读书笔记《Effective C++》条款37:绝不重新定义继承而来的缺省参数值
- 条款37:绝不重新定义继承而来的缺省参数值
- effective C++中条款37:绝不重新定义继承而来的缺省参数值
- Effective C++ 条款37解读:绝不重新定义继承而来的缺省参数值(2012年某公司笔试试题)
- Effective C++ -----条款37:绝不重新定义继承而来的缺省参数值
- [effectiv c++]条款37:绝不重新定义继承而来的缺省参数值(动态绑定,静态绑定,多态性)
- Effective C++条款 37:绝不重新定义继承而来的缺省参数值
- 条款37:绝不重新定义继承而来的缺省参数值
- effective C++ 条款 37:绝不重新定义继承而来的缺省参数值
- 面试题:一个短小强悍的C++面试题---违背Effective C++的条款37:绝不重新定义继承而来的缺省参数值
- 《Effective C++ 》学习笔记-第六章 条款37:绝不重新定义继承而来的缺省参数值
- Effective C++条款37:绝不重新定义继承而来的缺省参数值
- Effective C++条款 37:绝不重新定义继承而来的缺省参数值
- 条款37:绝不重新定义继承而来的 缺省参数值
- 面试题:一个短小强悍的C++面试题---违背Effective C++的条款37:绝不重新定义继承而来的缺省参数值
- 条款37:绝不重新定义继承而来的缺省参数值
- 条款37:绝不重新定义继承而来的缺省参数值
- Effective C++:条款37:绝不重新定义继承而来的缺省参数值