c++中关键字explicit用于类的构造函数
2015-12-22 16:30
766 查看
C++ explicit关键字的作用主要是用来修饰类的构造函数,表明该构造函数是显式的,禁止单参数构造函数的隐式转换。
因为在C++类的构造函数只有一个参数的时候,在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,
比如:
实际上等同于:
ExampleClass tem(10);
ExampleClass obj = tem;
如果要避免这种自动转换的功能,可以在声明构造函数的时候前面添加上explict关键字,将类的构造函数声明为“显示”,这样就可以禁止这种自动的转换操作。
将类的构造函数为显示的:
因为在C++类的构造函数只有一个参数的时候,在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,
比如:
class ExampleClass { public: ExampleClass(int num); }; ExampleClass obj = 10; 它将会把10隐士转换为ExampleClass 对象
实际上等同于:
ExampleClass tem(10);
ExampleClass obj = tem;
如果要避免这种自动转换的功能,可以在声明构造函数的时候前面添加上explict关键字,将类的构造函数声明为“显示”,这样就可以禁止这种自动的转换操作。
将类的构造函数为显示的:
class ExampleClass { public: explicit ExampleClass(int num); };
相关文章推荐
- 【c/c++】输入函数详解
- C语言常用知识点
- C语言实现单向链表的反转
- Visual C++6.0 程序设计从入门到精通(三) - MFC的消息机制
- C语言
- C语言总结
- 如何在C语言中实现可变参数
- C++学习笔记------浅析多态
- C++资源网站
- C++引用
- C++ string详解
- C语言指针和数组基础
- C++ find_if函数使用(STL_LIST)
- IL2CPP的前世今生
- IL2CPP的前世今生
- C语言printf函数格式化打印之长整型
- C语言中a[++i],a[i++]
- C++学习笔记-泛型算法
- C++学习笔记-泛型算法
- Effective Modern C++ Item2 理解auto类型推导