成员初始化器

所有数据成员均可以用成员初始化器的形式来进行初始化,但是对于const数据成员和引用数据成员和成员对象必须用成员初始化器来初始化。成员初始化器出现在构造函数参数列表后和函数体之间,用冒号:来与参数列表区分。多个数据成员之间用逗号来区别。例:

Increment::Increment(int c, int i)

:count(c),increment(i){//count,increment均是类Increment的数据成员

           //函数体为空
}

注意点:成员初始化列表在构造函数体执行之前执行。

完整的Increment程序示例:

--------------------------------------------------------------------------------------------

Increment.h//类接口

#ifndef        INCREMENT_H
#define     INCREMENT_Hf
class Increment{
public:
Increment(int c = 1, int i = 0 );

void addIncrement(){
count += increment;
}

void print()const;//const函数
private:
int count;
const int increment;//const常量
};
#endif

---------------------------------------------------------------------------------------

Increment类接口的实现

#include <iostream>//引入流头文件
#include "Increment.h"//引入自己的头文件
using namespace std;

Increment::Increment(int c, int i)
    :count(c),
    increment(i)//初始化列表器,在构造函数体被执行之前执行
{
    //empty
}

void Increment::print()const{
    cout<<"count is : "<<count<<"   increment is : "<<increment<<endl;
}

---------------------------------------------------------------------------------------------------

             main()函数

#include <iostream>
#include "Increment.h"
using namespace std;

int main(){
    Increment value(10,5);//构造函数先初始化列表器
    cout<<"Before Init !"<<endl;
    value.print();//打印相应的数据成员
    
    cout<<"After change !"<<endl;
    for(int i = 1; i <= 3; i++){
        cout<<"Now is number = "<<i<<endl;//打印出相应的循环次数
        value.addIncrement();//把数据成员count的值加上increment
        value.print();//再次打印结果
    }
}


转自我的个人技术网站


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值