explicit构造函数是用来防止隐式转换的。请看下面的代码:

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=;//隐式调用其构造函数,成功
Test2 t2=;//编译错误,不能隐式调用其构造函数
Test2 t2();//显式调用成功
return ;
}

1.explicit构造函数只能直接初始化

2.可以使用static_cast强制转换

item.combine(static_cast<Sales_data>(cin));

最新文章

  1. dos 下删除文件、文件夹
  2. C语言编程风格(转发)
  3. LinQ 基础
  4. photoshop菜单显示不全的解决方法
  5. html input readonly 和 disable的区别
  6. 团体程序设计天梯赛-练习集L1-002. 打印沙漏
  7. 创建oracle 密码文件
  8. Python自学笔记-面向对象相关(Mr seven)
  9. js各种继承方式汇总
  10. JavaScript之DOM创建节点
  11. jQuery源码解析对象实例化与jQuery原型及整体构建模型分析(一)
  12. Maven使用lib下的包
  13. MySQLi面向对象实践--select
  14. 坦克大战java版
  15. windows WTL使用命令行参数
  16. Java常见异常:Exception in thread &quot;main&quot; java.lang.NoClassDefFoundError
  17. 通过HTTP协议发送远程消息
  18. 简单介绍--TOSCA自动化测试工具
  19. Digester学习笔记(三)转载
  20. 如何计算圆周率 Pi (π)值, 精确到小数点后 10000 位 只需要 30 多句代码!

热门文章

  1. vue router按需加载
  2. Idea_学习_10_Idea远程debug
  3. C++继承细节 -1
  4. UVA - 1343 The Rotation Game (BFS/IDA*)
  5. Verilog数组表示及初始化
  6. MySQL 5.6 date 与 string 的转换和比较
  7. 网络监控之一:ss(Socket Statistics)
  8. Sass、Less和Stylus
  9. maven如何过滤占位符
  10. RVO和NRVO