explicit是C++中的一个关键字,只用于修饰只有一个参数的构造函数:

class A{
explicit A(const T obj);
};

该关键字告诉编译器该类只能显式的转换,不能隐式(implicit)的赋值。下面介绍一下显式转换和隐式转换的区别:

 A a=b;//隐式的调用构造函数
A a(b);//显式的调用构造函数

google的c++规范中提到explicit的优点是可以避免不合时宜的类型变换,缺点无。所以以后想项目中我决定只有单个传参的构造函数都用explicit修饰,以避免不必要的麻烦。

最新文章

  1. SQL Server 事件通知(Event notifications)
  2. 强类型DataSet的使用简明教程
  3. impdp报错: ORA-39064: 无法写入日志文件 ORA-29285: 文件写入错误
  4. RQNOJ Bus
  5. 转 苹果的新编程语言 Swift 简介
  6. [Java] 内部类的用法
  7. How Tomcat Works(十六)
  8. poj -2975 Nim
  9. 移动开发meta集合【精】
  10. 局域网内一台电脑的ip地址自己会变,怎样让它不变
  11. [LeetCode] Jewels and Stones 珠宝和石头
  12. php实现常驻进程 多进程监控
  13. cocos2dx九宫图使用方法
  14. python容器数据类型的特色
  15. localhost与127.0.0.1及本机ip的区别
  16. 如何设置datatable的宽度
  17. 【Ansible】ansible 任务失败控制
  18. bt开源的客户端——xbt client
  19. ORA-00972: 标识符过长
  20. 可变对象(immutable)和不可变对象(mutable)

热门文章

  1. 强化学习——Q-learning算法
  2. libvirt2.0安装
  3. 【ARM-Linux开发】Linux链接 -ln
  4. C语言--分支结构
  5. Design Circular Deque
  6. linux内核exec过程
  7. XSS跨站攻击靶场-通关笔记
  8. hdu 2680 Dijstra
  9. windows下将jar包打入maven仓库
  10. C# 连接 Socks5 代理