聲明一個成員函數的時候用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, 所以產生錯誤。