1、定义常成员函数:用关键字const说明的成员函数称为常成员函数。声明常成员函数时const 放在函数参数列表之后其格式如下:
类型标识符 函数名 (参数列表) const
const是函数类型的一个组成部分,因此在定义函数时必须重申const声明,定义格式如下
类型标识符 类名:: 函数名(参数列表) const {//函数体}
下面是一个例子:常对象调用常成员函数
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class Point{
private:
int X;
int Y;
public:
Point(int xx=0,int yy=0):X(xx),Y(yy){}
void Print(){
cout<<"The point is "<<X<<":"<<Y<<endl;
}
//常成员函数
void Prints()const{
cout<<"The point is "<<X<<":"<<Y<<endl;
}
};
int main(int argc, char** argv) {
Point p(1,2);
const Point p2(3,4); //常对象
p.Print();
p2.Prints(); //常对象只能调用常成员函数不能调用不是常成员的函数如果在此行调用Print()函数是编译不会通过
return 0;
}
注意:由于常对象不能被更新,因此在将一个对象说明为常对象之后,通过这个常对象只能调用它的常成员函数,而不能调用其它的成员函数,即普通的对象可以调用全部的成员函数,但常对象只能使用常成员函数。