懂 就说出来

博客园 首页 新随笔 联系 订阅 管理

2007年3月15日 #

摘要: 6.5 从效率的观点来看,你不应该关心函数返回的对象,你仅仅应该关心对象的开销。 inline const Rational operator*(const Rational& lhs, const Rational& rhs) { return Rational(lhs.numerator() * rhs.numerat... 阅读全文
posted @ 2007-03-15 12:47 景飒风景 阅读(323) 评论(0) 推荐(0) 编辑

2007年3月14日 #

摘要: 6.1 尽可能多的数据profile你的软件。此外,你必须确保每组数据在客户(或至少是最重要的客户)如何使用软件的方面能有代表性。 6.2 因为需要存储两个值之间的依赖关系,维护存储值、依赖关系或上述两者,重载操作符例如赋值符、拷贝操作和加法操作,所以lazy evaluation在数字领域应用得很多。另一方面运行程序时它经常节省大量的时间和空间。 避免不... 阅读全文
posted @ 2007-03-14 21:45 景飒风景 阅读(277) 评论(0) 推荐(0) 编辑

摘要: 5.3 如果在一个异常被激活的同时,析构函数也抛出异常,并导致程序控制权转移到析构函数外,C++将调用terminate函数 如果一个异常被析构函数抛出而没有在函数内部捕获住,那么析构函数就不会完全运行(它会停在抛出异常的那个地方上) 5.4 传递参数和异常时,系统所要完成的操作过程则是完全不同的。调用函数时,程序的控制权最终还会返回到函数的调用处,但... 阅读全文
posted @ 2007-03-14 14:04 景飒风景 阅读(325) 评论(0) 推荐(0) 编辑

2007年3月13日 #

摘要: 5.1 隐藏在auto_ptr后的思想是:用一个对象存储需要被自动释放的资源,然后依靠对象的析构函数来释放资源,这种思想不只是可以运用在指针上,还能用在其它资源的分配和释放上。 资源应该被封装在一个对象里,遵循这个规则,就能避免在存在异常环境里发生资源泄漏。但是分配和释放资源时刻的异常解决见后. 5.2 C++仅仅能删除被完全构造的对象 捕... 阅读全文
posted @ 2007-03-13 22:05 景飒风景 阅读(212) 评论(0) 推荐(0) 编辑

摘要: 4.1 两中转换函数: 单参数构造函数(single-argument constructors)和隐式类型转换运算符 都可能是危险的,此中切记不可转换用户自定义类型,即使是用explicit声明 在多数情况下,显式转换函数的使用虽然不方便,但是函数被悄悄调用的情况不再会发生,这点损失是值得的。 4.2 increment的前缀形式有时叫做“增加然后... 阅读全文
posted @ 2007-03-13 21:00 景飒风景 阅读(245) 评论(1) 推荐(0) 编辑

摘要: 3.1 不能使用指向空值的引用 引用应被初始化 指针则应该总是被测试,防止其为空 指针与引用的另一个重要的不同是指针可以被重新赋值以指向另一个不同的对象。但是引用则总是指向在初始化时被指定的对象,以后不能改变。 在以下情况下你应该使用指针,一是你考虑到存在不指向任何对象的可能(在这种情况下,你能够设置指针为空),... 阅读全文
posted @ 2007-03-13 19:33 景飒风景 阅读(285) 评论(0) 推荐(0) 编辑

摘要: 3. 基础议题 3.1 Item M1:指针与引用的区别3.2 Item M2:尽量使用C++风格的类型转换 3.3 Item M3:不要对数组使用多态 3.4 Item M4:避免无用的缺省构造函数 4. 运算符 4.1 Item M5:谨慎定义类型转换函数 4.2 Item M6:自增(increment)、自减(decremen... 阅读全文
posted @ 2007-03-13 18:55 景飒风景 阅读(392) 评论(0) 推荐(0) 编辑

摘要: 很高兴能在博客园开博 希望自己多加油! 阅读全文
posted @ 2007-03-13 10:32 景飒风景 阅读(103) 评论(0) 推荐(0) 编辑