explicit 关键字声明 不能隐式调用构造函数
2014-05-04 15:50
190 查看
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 t3(12); //显式调用成功 return 0; }
相关文章推荐
- C++隐式的类类型转换,explicit关键字介绍。
- 从Qt谈到C++(一):关键字explicit与隐式类型转换
- c# implicit explicit关键字(隐式和显式数据类型转换)
- c++中的explicit关键字及隐式类型转换
- explicit关键字和隐式的类类型转换
- 构造函数的explicit关键字声明
- C++的隐式转换和explicit关键字
- c++中的explicit关键字及隐式类型转换
- Qt C++中的关键字explicit——防止隐式转换(也就是Java里的装箱),必须写清楚
- C++中的explicit关键字 抑制隐式转换构造
- 隐式类型转换和explicit关键字的作用
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别
- C++ 中使用explicit关键字避免隐式转换
- C++ 隐式类型转换与关键字explicit
- 隐式类型转换和explicit关键字的作用
- C++中的explicit关键字 - 抑制隐式转换(转)
- C++的类类型隐式转换与explicit关键字
- 隐式类型转换和explicit关键字的作用
- C/C++日常学习总结(第十二篇)将构造函数声明为explicit(显式)的方式可以抑制隐式转换
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别