摘要:
并非所有的变化都是进步。隐式转换所带来的影响经常是弊大于利。在为自定义类型提供隐式转换之前,请三思而行,应该依赖的是显示转换。
隐式转换主要有两个主要的问题:
1.它们会在最意料不到的地方抛出异常。
2.他们并步总是能与语言的其他元素有效地配合。
隐式转换构造函数与重载机制配合得很糟糕,而且会使不可见的临时对象到处出现。在C++中,一个转换序列最多只能包含一个用户定义的转换。可是,如果这其中加入了内置转换,结果就会变得极为混乱。解决方法主要有:
1.默认时,为但参数构造函数加上explicit。
2.使用提供转换的命名函数代替转换操作符。