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

被折叠的 条评论
为什么被折叠?



