类型修饰符const不仅可以说明成员函数,也可是说明数据成员
由于const类型对象必须被初始化,并且不能更新,因此,子啊类中说明了const数据成员时,只能通过成员初始化列表的方式来生成构造函数对数据成员的初始化。
//A.h
#pragma onceclass 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");
}
结果:
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都是常类型的,需要采用初始化格式。
时间: 2024-08-30 03:18:40