1.常对象成员
(1)常成员函数
使用const关键词说明的函数为常成员函数,常成员函数说明格式如下:
<类型> <函数名> (<参数表>) const;
对于常对象成员需要注意一下几点:
①const是函数类型的一个组成部分,因此在实现部分也要带const关键词。
②常成员函数不更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数。
③如果将一个对象说明为常对象,则通过该常对象只能调用它的常成员函数,而不能调用其他成员函数。
④const关键词可以参与区分重载函数。例如:void print();和void print() const;是不一样的两个函数。
(2)常数据成员
如果一个类中说明了常数据成员,那么构造函数就只能通过初始化列表对该数据成员进行初始化。例如:
#include<iostream>
using namespace std;
class A
{
private:
const int a;
static const int b;
public:
A(int i);
void print();
const int &r;
}
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();
}
该程序的运行结果为:
100:10:100
0:10:0