标签:表示 tar code http turn test blank nbsp 转换构造函数
explicit关键字不经常看到,切实比较生僻。今天总结一下。
C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。
这是百度百科给的定义。 从定义上来看大概可以明白什么意思。
具体作用如下:
class
Test1
{
public
:
Test1(
int
n)
{
num=n;
}
//普通构造函数
private
:
int
num;
};
class
Test2
{
public
:
explicit
Test2(
int
n)
{
num=n;
}
//explicit(显式)构造函数
private
:
int
num;
};
int
main()
{
Test1 t1=12;
//隐式调用其构造函数,成功
Test2 t2=12;
//编译错误,不能隐式调用其构造函数
Test2 t2(12);
//显式调用成功
return
0;
}
标签:表示 tar code http turn test blank nbsp 转换构造函数
原文地址:http://www.cnblogs.com/lpl1/p/6371375.html