C++编程规范之40:要避免提供隐式转换

来源:互联网 发布:厦门科华工资怎样知乎 编辑:程序博客网 时间:2024/05/21 08:37

摘要:

    并非所有的变化都是进步。隐式转换所带来的影响经常是弊大于利。在为自定义类型提供隐式转换之前,请三思而行,应该依赖的是显示转换。

    隐式转换主要有两个主要的问题:

    1.它们会在最意料不到的地方抛出异常。

    2.他们并步总是能与语言的其他元素有效地配合。

    隐式转换构造函数与重载机制配合得很糟糕,而且会使不可见的临时对象到处出现。在C++中,一个转换序列最多只能包含一个用户定义的转换。可是,如果这其中加入了内置转换,结果就会变得极为混乱。解决方法主要有:

    1.默认时,为但参数构造函数加上explicit。

    2.使用提供转换的命名函数代替转换操作符。

1 0
原创粉丝点击