您的位置:首页 > 编程语言 > C语言/C++

C++中的关键字explicit

2010-03-27 11:00 211 查看
在 C++ 中, 如果一个类有只有一个参数的构造函数,C++ 允许一种特殊的声明类变量的方式。在这种情况下,可以直接将一个对应于构造函数参数类型的数据直接赋值给类变量,编译器在编译时会自动进行类型转换,将对应于构造函数参数类型的数据转换为类的对象。 如果在构造函数前加上 explicit 修饰词, 则会禁止这种自动转换,在这种情况下, 即使将对应于构造函数参数类型的数据直接赋值给类变量,编译器也会报错。

 

#include <iostream>
class Test1
{
public:
Test1(int n)
{
num = n;
}
private:
int num;
};

class Test2
{
public:
explicit Test2(int n)
{
num = n;
}
private:
int num;
};

int main()
{
Test1 t1 = 12;
Test2 t2 = Test2(12);
Test2 t3(12);

return 0;
}


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ 编译器 class c