初始化列表

初始化列表

class Date
{
public:
	//Date(int year, int month, int day)//构造函数
	//{
	//	_year = year;
	//	_month = month;
	//	_day = day;
	//}

	Date(int year, int month, int day)//初始化列表
		:_year(year),
		_month(month),
		_day(day)
	{}

private:
	int _year;
	int _month;
	int _day;

};

在如上代码中,构造函数只是对数据进行了赋初值,不能称之为初始化,初始化只能一次赋值,而构造函数体内可以多次赋值

注意:1、初始化列表只能使用一次

            2、const成员变量、引用成员变量、自定义类型(并且没有默认构造函数)必须在初始化列表初始化

在构造函数中是用赋值语句对成员变量进行赋值,但是const修饰的成员变量就是不可修改的常量,这时就只能使用初始化列表

初始化列表中的初始化顺序是成员声明的顺序,与初始化列表中的顺序无关

如上图中a为1时,a1先初始化,然后再初始化a2,所以结果a1是随机值,a2是1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值