初始化列表的作用

我纠结的问题都在primer上有很好的解答


之前突然想到,为什么要存在冒号这种初始化方法,在google被墙,没办法只能求助于度娘。。。


冒号这种初始化方法,也叫做,初始化列表,也就是变量初始化的时候调用的

意味着,在一个类当中,一个成员变量只能在初始化赋值。

比如: const, 比如引用&。


举个例子:

class A
{
public:
   A(i)
   {
        a = i;
        b = i;
        c = i;
   }

private:
   int a;
   const int b;
   int &c;
};

这样是不合法的, 因为b, c只能在初始化时赋值。


所以,只能如此初始化:

class A
{
public:
   A(int i):a(i), b(i), c(i){}

private:
   int a;
   const int b;
   int &c;
};


还有一个比较重要的问题,就是初始化列表的初始化顺序是怎样的?

class A
{
public:
	A():b(a-1), a(b-1)
	{
		cout<<b<<endl;
		cout<<a<<endl;
	};

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值