您的位置:首页 > 其它

隐式类型转换

2008-12-20 15:28 169 查看
C++本身对内置类型定义了各种隐式的类型转换,这种内置的类型转换在可能导致精度

丢失的情况下编译器会发出警告,但当我们定义自己的类型时,提供各种隐式转换往往

是弊大于利的(至少在我编写过的代码中很少用到).

隐式的类型转换可分为:其它类型到本类型,本类型到其它类型两种.第一种通过单变量

可调用之构造函数进行实现,第一种则通过用户定义之隐式转换函数进行实现.也许在

某些特殊的情况下这种隐式转换是有用的(例如可能的数值类型),但在大多数情况下它

们所带来的便利并不能弥补可能带来的漫长的程序行为错误调试,错误的关闭在于它们的

存在导致程序进行了用户认为不应该出现的行为但编译器却不提供任何错误提示.

一般用于防止这种隐式转换的方法是把构造函数标志为explcit,或者以代理类的方式

避免进行一次以上的隐式类型转换.

参考资料:More Effective C++ (2rd) 第5条
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: