explicit和implicit
2024-09-04 16:40:02
explicit是C++中的一个关键字,只用于修饰只有一个参数的构造函数:
class A{
explicit A(const T obj);
};
该关键字告诉编译器该类只能显式的转换,不能隐式(implicit)的赋值。下面介绍一下显式转换和隐式转换的区别:
A a=b;//隐式的调用构造函数
A a(b);//显式的调用构造函数
google的c++规范中提到explicit的优点是可以避免不合时宜的类型变换,缺点无。所以以后想项目中我决定只有单个传参的构造函数都用explicit修饰,以避免不必要的麻烦。
最新文章
- SQL Server 事件通知(Event notifications)
- 强类型DataSet的使用简明教程
- impdp报错: ORA-39064: 无法写入日志文件 ORA-29285: 文件写入错误
- RQNOJ Bus
- 转 苹果的新编程语言 Swift 简介
- [Java] 内部类的用法
- How Tomcat Works(十六)
- poj -2975 Nim
- 移动开发meta集合【精】
- 局域网内一台电脑的ip地址自己会变,怎样让它不变
- [LeetCode] Jewels and Stones 珠宝和石头
- php实现常驻进程 多进程监控
- cocos2dx九宫图使用方法
- python容器数据类型的特色
- localhost与127.0.0.1及本机ip的区别
- 如何设置datatable的宽度
- 【Ansible】ansible 任务失败控制
- bt开源的客户端——xbt client
- ORA-00972: 标识符过长
- 可变对象(immutable)和不可变对象(mutable)