explicit

Posted 葡萄成熟时卟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了explicit相关的知识,希望对你有一定的参考价值。

C++用户定义对象之间可以禁止隐式转换。

voiddosomething(A aObject); 

class A { 

public: 

explicit A(int x = 0); 

dosomething(20); // ERROR 隐式转换被禁止

dosomething(static_cast<A>(20)); // OK 显式转换

被声明为explicit 的构造函数通常比non-explicit更好。

综合起来说

C++ 中应该尽量不使用转换,尽量使用显式转换来代替隐式转换,尽量不用reinterper_cast显式转换。

 

以上是关于explicit的主要内容,如果未能解决你的问题,请参考以下文章