1. 程式人生 > >C++函式後面加const修飾

C++函式後面加const修飾

給隱含的this指標加const,表示這個this指向的東西是const的,也就是說這個函式中無法改動資料成員了。const是一種保證,告訴你這個成員不會改變物件的狀態。

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