浅论explicit关键字
来源:互联网 发布:阿里云代金券jxthw 编辑:程序博客网 时间:2024/05/02 18:22
Explicit单词的含义是:外在的, 清楚的, 直率的,显式的,Explicit关键字的目的是防止隐式的构造,只能进行显式的的构造。
举例说明:
#include <iostream>
using namespace std;
class A{
public:
Explicit A(int i){//构造函数1
}
A(string str,int i=10){//构造函数2
}
};
int main()
{
A a1(1); //调用构造函数1
A a2("test"); //调用构造函数2
A a3("test",12); //调用构造函数2
A a4 = 1; //为构造函数1加上explicit则出错,不加则正确。此时错误。
A a5 = "test"; //为构造函数2加上explicit则出错,不加则正确。此时正确。
return 0;
}
如同任何基本数据类型的定义和初始化有两种情况一样:
Int i= 10;
int i(10);
自定义数据类型(struct 和class)的初始化也有隐式构造和显式构造两种方式:
ClassA a=10;
ClassA a(10);
Explicit关键字的作用就是防止隐式的构造(第一种)。
Explicit关键字的应用领域很小,只用在构造函数上,且只在例子中的两种情况下使用:
1:只有一个参数的构造函数;A(int i){}
2:构造函数有多个参数,但只有一个参数没有默认值。A(string str,int i=10,int j=1){}
- 浅论explicit关键字
- explicit 关键字
- Explicit 关键字
- Explicit 关键字
- explicit关键字
- 关键字explicit
- explicit关键字
- explicit关键字
- explicit关键字
- 关键字explicit
- explicit关键字
- Explicit 关键字
- 关键字 explicit
- explicit关键字
- 关键字 explicit
- explicit关键字
- explicit 关键字
- explicit 关键字
- Real6410/S3C6410裸机LCD驱动
- 基础类的DSP/BIOS API调用
- HDU 1863 prim最小生成树
- linux的system函数
- oracle的启动与关闭
- 浅论explicit关键字
- 浅论析构函数,拷贝构造函数和赋值运算符
- 迭代器和组合——head_first_DP
- Yum离线安装(二) --- 制作centos离线包
- C++上传文件到Restful Web Service服务端——客户端篇
- oracle获取延期特定工作日以后的日期
- 第三章 字符设备驱动程序
- eclipse java项目转移笔记
- 最小生成树标准排版