C++
文章平均质量分 80
Joshua_Zhou
这个作者很懒,什么都没留下…
展开
-
显式编写空析构函数以减少编译依赖
一个例子这是一个精心设计,极度简化的例子,只为说明问题,并不是产品代码。 A.h的内容 #include // for auto_ptr class B; // forward decleration class A { public: A(); private: std::auto_ptrB> m_oB; }; A.cpp的内容原创 2008-07-26 19:11:00 · 790 阅读 · 0 评论 -
type trait用于平行类层次中的参数类型检查
什么是平行类层次如以下UML图所示。Animal都需要吃(eat)食(Food), Dog只吃狗食(DogFood), Cat只吃猫食(CatFood). 狗吃猫食?Dog dog;CatFood catFood;dog.eat(catFood); // 狗吃了猫食。解决方案方案1:覆盖(override)eat函数覆盖函数可定义如下:void原创 2008-07-26 19:52:00 · 583 阅读 · 0 评论 -
自定义bool类型转换操作符
假如有个Condition类型的变量flag,我们希望如下使用: Condition flag;If (flag) do_something;要做到这一点,需要为Condition提供bool类型转换操作符,使得flag经过一定的类型转换之后成为bool值。有两种策略可以做到。 1. 一步到位:直接将Condition转换成bool类型class原创 2009-06-18 03:10:00 · 1254 阅读 · 0 评论 -
愚蠢的条件表达式?
愚蠢的条件表达式首先看一段代码: 1: class B {}; 2: class D1 : public B {}; 3: class D2 : public B {}; 4: void main() 5: { 6: D1* p原创 2009-06-18 11:04:00 · 520 阅读 · 0 评论