2005年4月15日

Item 31. Covariant Return Types & Item 32. Preventing Copying

摘要: Item 31. Covariant Return TypesCovariant:随变,随动。(你变我就变)通常,一个overriding函数必须与所重写的函数具有相同的返回类型。然而,并非事事如此,Covariant Return Types便是无需如此。如下的继承体系:class Shape ... 阅读全文

posted @ 2005-04-15 17:32 张大大123 阅读(58) 评论(0) 推荐(0) 编辑

Item 29. Virtual Constructors and Prototype&Item 30. Factory Method

摘要: Item 29. Virtual Constructors and PrototypeVirtual Constructors?C++没有Virtual Constructors这个概念。但有的情况下又需要这个功能,即在多态的时候能够创建出一个跟指针的动态类型相同的一个对象。既然是多态就要考虑虚函... 阅读全文

posted @ 2005-04-15 17:26 张大大123 阅读(99) 评论(0) 推荐(0) 编辑

Item 28.话说指针比较(Meaning of Pointer Comparison)

摘要: Item 28. Meaning of Pointer Comparison一个对象可能有多个有效的地址(本身的指针和指向基类的指针),假若有多个指针指向它,这些指针的指向就可能不同。那么在对这些指针做比较时,是对指针指向对象的地址作比较?还是对指针指向对象的标识作比较呢?例如:class Sha... 阅读全文

posted @ 2005-04-15 12:07 张大大123 阅读(101) 评论(0) 推荐(0) 编辑

Item 27. 能力质询(Capability Queries)

摘要: Item 27. Capability Queriesclass Shape { public: virtual ~Shape(); virtual void draw() const = 0; //...};class Rollable { public: virt... 阅读全文

posted @ 2005-04-15 10:48 张大大123 阅读(110) 评论(0) 推荐(0) 编辑

Item 26. Operator Function Lookup

摘要: Item 26. Operator Function Lookup 有时候Operator Function看起来像是成员操作符函数overload一个非成员操作符,但事实并非如此。这不是overloading,只是一种不同的查找算法。class X { public: X operato... 阅读全文

posted @ 2005-04-15 10:17 张大大123 阅读(95) 评论(0) 推荐(0) 编辑

2005年4月14日

Item 25. Argument Dependent Lookup

摘要: Item 25. Argument Dependent Lookupnamespaces对于C++程序和设计有很深的影响。它的Argument Dependent Lookup(ADL)特性非常重要,尽管潜在的增加了程序的复杂性,但它所解决的问题远比它引入的要多。ADL的思想很简单:当在函数调用表... 阅读全文

posted @ 2005-04-14 21:37 张大大123 阅读(110) 评论(0) 推荐(0) 编辑

Item 24. 成员函数的查找(Member Function Lookup )

摘要: Item 24. Member Function Lookup 当调用一个成员函数时,涉及到三个步骤:1)编译器寻找函数名2)从有效的候选函数中选出最匹配的3)核对选出的函数与要访问的函数从这个角度理解如下代码:class B { public: //... void f( doub... 阅读全文

posted @ 2005-04-14 19:08 张大大123 阅读(119) 评论(0) 推荐(0) 编辑

Item 23. Namespaces

摘要: Item 23. Namespaces解决重命名的一种方法用吧, very simple 阅读全文

posted @ 2005-04-14 19:06 张大大123 阅读(96) 评论(0) 推荐(0) 编辑

Item 22. 模板方法与曲线救国(Template Method)

摘要: Item 22. Template Method敬告Template Method 与 C++中的templates毫不相干,它只是一种设计方法(亦或设计模式)。------------------------1、Template Method设计的目的Template Method是用于基类设计... 阅读全文

posted @ 2005-04-14 11:41 张大大123 阅读(122) 评论(0) 推荐(0) 编辑

21.重载与重写(Overloading and Overriding Are Different)

摘要: Item 21. Overloading and Overriding Are DifferentOverloading : 重载Overriding :重写1、Overloading 与 Overriding 是两个不同的概念Overloading 是指在同一个作用域中有两个或多个函数拥有相... 阅读全文

posted @ 2005-04-14 10:20 张大大123 阅读(123) 评论(0) 推荐(0) 编辑

导航