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;
}
注意:由於常對象不能被更新,因此在將一個對象說明爲常對象之後,通過這個常對象只能調用它的常成員函數,而不能調用其它的成員函數,即普通的對象可以調用全部的成員函數,但常對象只能使用常成員函數。