NoFear

导航

2012年3月22日

摘要: View Code 让编译器进行隐式类型转换所造成的弊端要大于它所带来的好处,所以除非你确实需要,不要定义类型转换函数。隐式类型转换的缺点:它们的存在将导致错误的发生。例如:class Rational {public: ... operator double() const; // 转换Rational类成double类型};在下面这种情况下,这个函数会被自动调用:Rational r(1, 2); // r 的值是1/2 double d = 0.5 * r; ... 阅读全文

posted @ 2012-03-22 11:04 Fear_Hao 阅读(450) 评论(0) 推荐(0) 编辑

摘要: View Code 由于 某些时刻你需要获取一个 RAII 对象中的原始资源,所以一些 RAII 类的设计者使用了一个小手段来使系统正常运行,那就是:提供一个隐式转换函数。举例说,以下是一个 C 语言 API 中提供的处理字体的一个 RAII 类:FontHandle getFont(); // 来自一个 C 语言 API 省略参数表以简化代码void releaseFont(FontHandle fh); // 来自同一个 C 语言 APIclass Font // RAII 类{ ... 阅读全文

posted @ 2012-03-22 10:55 Fear_Hao 阅读(219) 评论(0) 推荐(0) 编辑