摘要: 重新定义一个继承而来的non-virtual函数永远都是错误的,本条款的讨论限制在“带有缺省参数的virtual函数”。 virtual函数是动态绑定的,而缺省参数却是静态绑定。 对象的所谓静态类型,是它在程序中被声明时所采用的类型。 class Shape { public: enum ShapeColor {Red, Green, Blue}; ... 阅读全文
posted @ 2012-02-11 20:53 lidan 阅读(510) 评论(0) 推荐(0) 编辑
摘要: class B { public: void mf(); ... }; class D : public B {...}; D x; 如果一下行为: B* pB = &x; pB->mf(); 异于以下行为: D* pD = &x; pD->mf(); 你可能相当惊讶。两者的行为确实应该相同,但是如果mf... 阅读全文
posted @ 2012-02-11 17:09 lidan 阅读(409) 评论(0) 推荐(0) 编辑