首页 > 其他 > 详细

常数据成员

时间:2014-05-09 12:59:48      阅读:364      评论:0      收藏:0      [点我收藏+]

类型修饰符const不仅可以说明成员函数,也可是说明数据成员

由于const类型对象必须被初始化,并且不能更新,因此,子啊类中说明了const数据成员时,只能通过成员初始化列表的方式来生成构造函数对数据成员的初始化。

bubuko.com,布布扣
//A.h
#pragma once

class A
{
public:
    A(int i);
    void print();
    const int &r;
private:
    const int a;
    static const int b;
};




//A.cpp
#include "A.h"
#include <iostream>
using namespace std;

const int A::b=10;
A::A(int i):a(i),r(a)
{

}
void A::print()
{
    cout << a << ":" << b << ":" << r << endl;
}
void main()
{
    A a1(100),a2(0);
    a1.print();
    a2.print();
    system("pause");
}
bubuko.com,布布扣

结果:
100:10:100
0:10:0
请按任意键继续. . .

 在该程序中,设置了如下3个常类型数据成员:

const int &r; const int a; static const int b;

其中,r是常int型引用,a是常int型变量,b是静态常int型变量。程序中对静态数据成员b进行初始化。值得注意的是构造函数的格式如下所示:

A(int i):a(i),r(a){}

其中,冒号后边是一个数据成员初始化列表,它包含两个初始化项,用逗号进行分隔,因为数据成员a和r都是常类型的,需要采用初始化格式。

常数据成员,布布扣,bubuko.com

常数据成员

原文:http://www.cnblogs.com/study-programmer/p/3718446.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!