关键字explicit

梦想游戏人
目录:
C/C++

explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。

class A
{
public:
	A(int x)
	{

	}
};

class B
{
public:
	explicit B(int x)
	{

	}
};

A a = 5;//OK隐式调用
A a1(5);//OK 显式调用

B b = 5;//ERROR
B b1(5);/OK
Scroll Up