explicit 禁止隐式转换
2010-09-08 16:26
190 查看
explicit 关键字只能用于类内部的构造函数声明上。
在构造函数的实现中不需要再声明explicit
如下例:
上例中的 "A a = 19;" 如果构造函数A(int a)前没有声明称explicit的话 这个将进行隐式转化,用赋值操作符是合法的
所以 如果使用A a = 19; 则编译不会通过, 因为前面声明了explicit 必须显示的进行赋值
在构造函数的实现中不需要再声明explicit
如下例:
#include <iostream> using namespace std; class A { public: int age; explicit A( int a) { age = a; cout<<age<<endl; } }; int main() { //A a = 19; A a(19); return 0; }
上例中的 "A a = 19;" 如果构造函数A(int a)前没有声明称explicit的话 这个将进行隐式转化,用赋值操作符是合法的
所以 如果使用A a = 19; 则编译不会通过, 因为前面声明了explicit 必须显示的进行赋值
相关文章推荐
- explicit构造函数禁止隐式转换
- c# implicit explicit关键字(隐式和显式数据类型转换)
- 【C++】隐式类型转换和 explicit关键字
- 带有一个参数的构造函数的隐式类型转换和explicit 关键字
- C++中的explicit作用功能(防止隐式转换)
- C++ 隐式类型转换与关键字explicit
- 显式和隐式转换:Explicit and Implicit,Immortal and Monster
- explicit 只对构造函数起作用,用来抑制隐式转换
- C++12.4.4 隐式类类型转换----explicit
- C++中的explicit关键字 - 抑制隐式转换(转)
- C++的隐式转换和explicit关键字
- C/C++日常学习总结(第十二篇)将构造函数声明为explicit(显式)的方式可以抑制隐式转换
- explicit 显示转换 (不允许隐式转换)
- C++中的explicit关键字 抑制隐式转换构造
- c++中的explicit关键字及隐式类型转换
- C# 转换运算符:implicit(隐式),explicit(显示)
- 隐式转换 && explicit 显示初始化
- explicit关键字和隐式的类类型转换
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别