Effective c++ 条款13: 初始化列表中成员列出的顺序和它们在类中声明的顺序相同

#include <iostream>

using namespace std;

class A
{
public:
	A(int);
	~A();
	void showI();
	void showJ();
private:
	int i;
	int j;
};

A::A(int k)
:j(k),i(j)
{
	cout<< "初始化完毕" <<endl;
}

inline A::~A()
{
	cout<<"对话被回收" <<endl;
}

inline void A::showI()
{
	cout<<"A::i = " << this->i <<endl;
}

inline void A::showJ()
{
	cout<<"A::j = " << this->j <<endl;
}

int main()
{
	A a(5);
	a.showI();
	a.showJ();

	return 0;
}
在c++中初始化类列表中,初始化的顺序和初始化列表中表的式的顺序没关系,它之后再类中声明顺序有关,在上面例子中this->i的值是不可预知的。
c++ Primer:每个成员在初始化列表中只能出现一次,初始化的顺序不是由名字在初始化列表中的顺序决定,而是由成员在类中的被声明顺序决定。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值