C++ explicit 关键字使用
来源:互联网 发布:网络红人毒药身世 知乎 编辑:程序博客网 时间:2024/06/05 05:11
explicit关键字
首先举一两个例子:
class MyString{ //分配n个字节空间 MyString(int n); //利用const char*初始化 MyString(const char* str);};MyString strMy(7); //调用第一个构造函数,分配7个字节空间MyString strMy1 = MyString(7);//没有问题MyString strMy2 = ’a';//这样调用呢?你可能会认为是用字符a初始化, //其实 还是分配int('a')也就是97个字节的空间
以上strMy2的初始化是一种隐式的转换,很明显,又些时候,我们需要避免这种隐式的转换,以防止不可控制的程序bug,那么,我们只需要在第一个构造函数前用explicit关键字限定即可:如下:
class MyString{ //分配n个字节空间 explicit MyString(int n); //利用const char*初始化 MyString(const char* str);};MyString strMy1 = 7; //编译报错,无法隐式转换MyString strMy2 = ’a';//编译报错,无法隐式转换MyString strMy3(7); //调用第一个构造函数,分配7个字节空间MyString strMy4 = MyString(7);//没有问题 同上
阅读全文
0 0
- C++:explicit 关键字
- C++explicit关键字
- 【C++】explicit关键字
- C++explicit关键字
- 【C++】explicit关键字
- 【C++】explicit关键字
- 【C++】explicit关键字
- explicit关键字的使用
- explicit 关键字的使用
- explicit关键字的使用...
- explicit关键字的使用
- explicit关键字的使用
- C++ explicit 关键字使用
- C++explicit的使用
- C++——explicit关键字简析
- extern “C”总结 C++中的explicit关键字
- C++—volatile、explicit、mutable关键字
- explicit 关键字
- 欧拉函数(求与n互质的数的个数)
- 剑指offer 之 合并两个排序的链表
- Java web开发中的各种bean对应的术语(VO,PO,BO,QO, DAO,POJO,DTO)
- Android的日志工具
- GitHub学习笔记--2
- C++ explicit 关键字使用
- [素数]:编写函数,求出小于或等于lim的所有素数,并放在aa数组中,函数返回所求的素数个数。
- UI自动化测试经验之谈(一)
- 简易计算器
- words Demo总结(二)
- Freeline的使用
- Python的ASCII, GB2312, Unicode , UTF-8 相互转换
- shell命令--cp
- ubuntu下qt-creator不支持写中文注释