成员初始化列表以及静态私有变量初始化

在一个类中,我们往往可能会定义一个静态变量,但在声明一个类的时候不会进行内存的申请,只有在进行对象定义的时候才会进行内存申请,但问题来了,在程序进行到构造函数的时候,要对静态变量进行初始化,但因为是const静态变量,不能改变其初始值,会出现错误。因此,必须在执行构造函数之前,在创建对象时进行初始化。
C++提供了成员初始化列表语法来实现这个功能。
在构造函数定义处添加上冒号,并由逗号分割初始化列表。要初始化的变量后加括号,里面是初始化的值。
只有构造函数可以使用初始化列表语法

class queue
{
private:
	struct Node{int item;struct Node * next;};
	enum{Q_SIZE = 10};
	Node * front;
	Node * rear;
	int items;
	const int qsize;

public:
	//queue();
	queue(int qs = Q_SIZE);

};
queue::queue(int qs):qsize(qs),front(NULL),rear(NULL),items(0)
{
	 //front = rear = NULL;
	// items = 0;
	 //qsize = qs;
}

如果是被声明为引用的类成员,也必须使用这样的语法

class aaa
{
    .......................
};
class bbb
{
      aaa & ccc;
};

bbb::bbb(aaa & s):ccc(s)
{

}

当然,C++也支持类内初始化,即在类声明的时候就对变量进行初始化。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值