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 阅读(57) 评论(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 阅读(98) 评论(0) 推荐(0) 编辑

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

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

posted @ 2005-04-15 12:07 张大大123 阅读(100) 评论(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 阅读(107) 评论(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 阅读(94) 评论(0) 推荐(0) 编辑

导航