c++ explicit
来源:互联网 发布:js请求servlet 编辑:程序博客网 时间:2024/06/08 04:54
explicit 的作用?
针对1个参数的,构造函数,存在隐式数据类型转换的可能;为了避免这种转化,构造函数内部使用explicit进行限定,不允许单参数的隐式类型转换;
class Test {public: Test(int n):num(n){}private: int num;}Test val = 10;//实际进行隐式类型转换:Test tmp(10) -> val
不想发生此转换,使用explicit吧!
explicit 的使用建议?
google的c++规范中提到explicit的优点是可以避免不合时宜的类型变换,缺点无。所以google约定所有单参数的构造函数都必须是显示的,只有极少数情况下拷贝构造函数可以不声明称explicit。例如作为其他类的透明包装器的类。
effective c++中说:被声明为explicit的构造函数通常比其non-explicit兄弟更受欢迎。因为它们禁止编译器执行非预期(往往也不被期望)的类型转换。除非我有一个好理由允许构造函数被用于隐式类型转换,否则我会把它声明为explicit。鼓励你遵循相同的政策。
0 0
- C++, explicit
- c++-explicit
- [C++]explicit解释
- [C++]explicit解释
- [C++]explicit解释
- C++:explicit 关键字
- C++explicit关键字
- 【C++】explicit关键字
- explicit构造函数(C++)
- C++explicit关键字
- 【C++】explicit构造函数
- 【C++】explicit关键字
- C++explicit的用法
- 【C++】explicit关键字
- [C++]explicit构造函数
- C++explicit的使用
- c/c++ explicit
- 【C++】explicit关键字
- 集合框架-模拟斗地主洗牌和发牌并对牌进行排序案例
- c++ STL
- 最新极光推送在ios模拟器上无法运行
- javascript中对原型的理解
- angularjs 与 ueditor 使用的时候 setContent 报错
- c++ explicit
- JAVA中调用C语言接口
- form表单的两种提交方式,submit和button的用法
- 挑战密室,第八届河南省省赛,郑大OJ10406
- Android 通过JitPack让自己开源库可以被别人引用
- Utf8和Unicode转换问题 C语言 千字文问题
- Maven常用命令
- Logger日志级别说明及设置方法、说明
- 深度学习 16. 反向传递算法最简单的理解与提高,BP算法,Backpropagation, 自己的心得。