在C++中explicit关键字

来源:互联网 发布:visio 书籍 知乎 编辑:程序博客网 时间:2024/05/21 16:55

在C++中explicit作用:

explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。

explicit使用注意事项:

*explicit 关键字只能用于类内部的构造函数声明上。

*explicit 关键字作用于单个参数的构造函数。

* 在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换

 

如下面所示:

class MyClass
{
public:
MyClass( int num );
}
....
MyClass obj = 10; //ok,convert int to MyClass

在上面的代码中编译器自动将整型转换为MyClass类对象,实际上等同于下面的操作:

MyClass temp(10);
MyClass obj = temp;
class MyClass
{
public:
explicit MyClass( int num );
}
....
MyClass obj = 10; //err,can't non-explict convert
原创粉丝点击