聲明一個成員函數的時候用const關鍵字是用來說明這個函數是 "只讀(read-only)"函數,也就是說明這個函數不會修改任何數據成員(object)。 為了聲明一個const成員函數, 把const關鍵字放在函數括號的後面。聲明和定義的時候都應該放const關鍵字。
任何不會修改數據成員的函數都應該聲明為const類型。如果在編寫const成員函數時,不慎修改了數據成員,或者調用了其它非const成員函數,編譯器將指出錯誤,這無疑會提高程序的健壯性。
#include<iostream>
using namespace std;
class temp
{
public:
temp(int age);
int getAge() const;
void setNum(int num);
private:
int age;
};
temp::temp(int age)
{
this->age = age;
}
int temp::getAge() const
{
age+=10; // #Error...error C2166: l-value specifies const object #
return age;
}
void main()
{
temp a(22);
cout << "age= " << a.getAge() << endl;
}
因為聲明了const函數,所以不可以修改任何數據成員,但是在這裡給age數據成員加了10, 所以產生錯誤。