关闭

绝不重新定义继承而来的缺省参数值

标签: Effective C++
156人阅读 评论(0) 收藏 举报
分类:
//////////////////////////////////////////////////////////////////////////
// Effective C++. 
// Item 37: Never redefine a function's inherited default parameter value.
// 绝不重新定义继承而来的缺省参数值
class IShape
{
public:
	enum ShapeColor{ Red, Green, Blue };
	virtual void draw(ShapeColor color = Red) const = 0;
};

class CRectangle: public IShape
{
public:
	virtual void draw(ShapeColor color = Green) const
	{
		int a = 0;
		return;
	}
};

int main()
{
	IShape* pRectangle = new CRectangle;
	if (pRectangle)
	{
		// 因为默认参数是静态绑定,所以这里传到CRectangle::draw()里的参数是Red,而不是Green
		pRectangle->draw();
	}
	return 0;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:160次
    • 积分:11
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档