C++构造函数之委托构造函数
来源:互联网 发布:中国经济走势 知乎 编辑:程序博客网 时间:2024/06/15 21:17
C++构造函数之委托构造函数
C++11新标准扩展了构造函数初始值的功能,所以委托构造函数就出现了,一个委托构造函数使用它所属类的其他构造函数执行它自己的初始化过程,或者说他把自己的一些(或全部)职责委托给了其他构造函数。
1.定义:
和其他构造函数一样,一个委托构造函数也有一个成员初始值列表和一个函数体。在委托构造函数内,成员初始值列表只有一个唯一的入口,就是类名本身。和其他成员初始值一样,类名后面紧跟圆括号括起来的参数列表,参数列表必须跟类中另外一个函数匹配。
2.举例说明
下面我们来看一个具体的例子:
#include<iostream>
using namespace std;
class Date
{
public:
//非委托构造函数使用对应的实参初始化成员
Date(int year,int month,int day)
:_year(year)
, _month(month)
, _day(day)
{}
//其余构造函数全都委托给另一个构造函数
Date() :Date(1990,1,1)
{}
Date(int year) :Date(){}
private:
int _year;
int _month;
int _day;
};
void FunTest()
{
Date d;
Date::Date(2016);
}
int main()
{
FunTest();
system("pause");
return 0;
}
分析:在Date类中,除了第一个构造函数外,其他的都委托了他们的工作,第一个构造函数接受三个实参,使用这些实参初始化数据成员,然后结束工作。其他两个构造函数把自己的初始化工作全都委托给了第一个构造函数去完成。这点可以通过对以上程序的调试来验证,在调试过程中,但需要第二个或者第三个构造函数来完成初始化工作时,再按F11调试都会跳转到第一个构造函数中去。
- C++构造函数之委托构造函数
- 【C#】 之 构造函数
- 委托构造函数
- 委托构造函数
- 类-委托构造函数
- 委托构造函数 转换构造函数
- objective-c之构造函数
- c++11 新特性之委托构造函数
- C++构造函数初始化列表 委托构造函数
- 【C++】拷贝构造函数
- C#:静态构造函数
- C++:拷贝构造函数
- explicit构造函数(C++)
- C++:关于构造函数
- C++-构造函数
- C++String构造函数
- c++-转换构造函数
- c++"拷贝构造函数
- 使用 SSHFS 挂载远程的 Linux 文件系统及目录
- Adapter适配器的自定义
- OpenCV学习日记3
- Android实现类似QQ头像点击打开相册或者拍照,并获取裁剪后的图片
- 用flask开发个人博客(26)—— 利用config.py配置文件动态的创建不同的Flask对象
- C++构造函数之委托构造函数
- 解决Linux下多个进程或线程同时对一个文件进行写操作问题
- 最小树形图(刘朱算法)记录
- 一款轻量的分布式配置管理平台
- Petit FatFS在STC12C5A60S2实现移植
- OpenCV22(灰度共现矩阵/灰度共生矩阵)
- 记录一下python的数据结构
- bonita BPM-----identity API
- package bufio: unrecognized import path "bufio" 编译ngrok服务端