码迷,mamicode.com
首页 > 其他好文 > 详细

常数据成员

时间:2014-05-09 13:00:00      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   color   

类型修饰符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

常数据成员

标签:style   blog   class   code   java   color   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!