技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152

个人理解:

这个的作用,其实就是,防止隐式转换,因为如果有隐式转换的话,那么用起来,感觉就怪怪的,

比如下面的例子中,本来应该是,CXString string1(24)代表分配24个字节内存,这样用来着,

其实如果不在构造函数前面加explicit关键字的话,就可以这样写

CXString string1=24

这样写的话,感觉就像是给string1赋了个值一样,实际上不是赋值操作,而是给CXString,这个对象分配了

24个字节的内存。

所以,一般情况下,构造函数都要显示的表示出来。

explicit只对,有单个参数的,构造函数起作用,因为多个参数的构造函数,默认的就没办法隐式转换,

如果不加explicit的话,构造函数默认是可以隐式转换的

《》《》《》《》《》《》《》《》《》《》《》《》《》《》《》《》《》《》《》《》《》《》《》

首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).

那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:

class CxString  // 没有使用explicit关键字的类声明, 即默认为隐式声明
{
public:  char *_pstr; 

VC++工作笔记0003---C++中的explicit关键字相关推荐

  1. c++中的explicit关键字

    2007-05-11 14:42:00 | 作者: Admin ] c++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有&quo ...

  2. 【c++】【转】c++中的explicit关键字

    http://www.cnblogs.com/chio/archive/2007/09/17/895263.html c++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式(调用) ...

  3. 深入理解C++中的explicit关键字

    深入理解C++中的explicit关键字 kezunhai@gmail.com http://blog.csdn.net/kezunhai C++中的explicit关键字只能用于修饰只有一个参数的构 ...

  4. C++中的explicit关键字用法

    c++中的explicit关键字用来修饰类的构造函数,被修饰的类的构造函数不能进行隐式类型的转换,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐 ...

  5. 【转】认识 C++ 中的 explicit 关键字

    C++ 中 explicit 关键字的作用 在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换. explicit使 ...

  6. C++中的explicit关键字介绍

    C++中的关键字explicit主要是用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换.类构造函数默认情况下声明为隐式的即implicit. 隐式转 ...

  7. 【学习笔记】C++ 中的 virtual 关键字与虚函数

    目录 先决条件 前言 演示示例 virtual 关键字的作用 虚函数的规则 参考与拓展 深入拓展 先决条件 了解 C++ 中的多态这个概念. 前言 virtual 关键字是面对对象中,用于修饰类中的成 ...

  8. VC++工作笔记0002---积累-VC++中的L“”是什么意思

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 代表宽字符 用L标识的是宽字符 标准的字符是一个字符一个字节 宽的是一个字符两个字节. 对应类型是 ...

  9. VC++工作笔记0001---积累-vc中m_开头的意义

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 一种变量命名方法-匈牙利命名法,m即member,即定义的变量为成员变量.这是一种命名规范.

最新文章

  1. mysql查询php输出表格_MySql数据库查询结果用表格输出PHP代码示例_PHP教程
  2. 《深入理解计算机系统》读书笔记(ch1)
  3. WdatePicker—WdatePicker日历控件使用方法
  4. RabbitMQ 集群原理和完善
  5. 【SSLGZ 2812】2017年10月30日提高组T2 凤凰院真凶
  6. 佐客牛排机器人餐厅_2018年中国最火的三家餐厅!秘密竟是机器人服务员?
  7. IC验证-寄存器专项测试
  8. 位图BITMAP结构
  9. LC振荡电路以及考虑寄生参数时MOS管开通关断分析
  10. 如何防止你的代码被窃取?Python代码加密方案汇总(带实例验证)
  11. 利用无效字节码指令引发逆向工具崩溃(二)
  12. 嵌入式Linux的低功耗策略研究[转]
  13. 使用python编写一个完整的接口自动化用例
  14. 尚医通-阿里云短信服务(二十九)
  15. 组装电脑配置推荐2022
  16. 【Matlab风电功率预测】粒子群算法优化BP神经网络风电功率预测【含源码 347期】
  17. 排序算法比较(C语言)
  18. 给孩子打印试卷用什么软件?
  19. js中的 与 | 运算
  20. TIA博途(西门子PLC)V15/V16上传程序的方法总结

热门文章

  1. C语言学习笔记---嵌套结构体
  2. HDU-1068Girls and Boys(二分匹配)
  3. NYOJ-寻找最大数(贪心)
  4. DSB2017第一名代码尝试运行(记录自用)(三)
  5. Android学习笔记(四)——EditText简单登录页面设计
  6. 查看特定进程杀死进程方法
  7. go语言之数组与切片
  8. Spring Cloud 架构 五大神兽的功能
  9. Docker可视化界面(Consul+Shipyard+Swarm+Service Discover
  10. glm编译错误问题解决 formal parameter with __declspec(align(#39;16#39;)) won#39;t be aligned...