1. 程式人生 > >類的const成員變數

類的const成員變數

在設計類的時候,一個原則就是對於不改變資料成員的成員函式都要在後面加 const,而對於改變資料成員的成員函式不能加 const。

(1)有 const 修飾的成員函式(指 const 放在函式引數表的後面,而不是在函式前面或者引數表內),只能讀取資料成員,不能改變資料成員;沒有 const 修飾的成員函式,對資料成員則是可讀可寫的。
(2)除此之外,在類的成員函式後面加 const 還有什麼好處呢?那就是常量(即 const)物件可以呼叫 const 成員函式,而不能呼叫非const修飾的函式

class A

{

public:

    

void f()

    {

        cout<<"non const"<<endl;

    }

    void f() const

    {

        cout<<" const"

<<endl;

    }

};

 

int main(int argc, char **argv)

{

    A a;

    a.f();

    const A &b=a;

    b.f();

    const A *c=&a;

    c->f();

    A *const d=&a;

    d->f();

    A *const e=d;

    e->f();

    const A *f=c;

    f->f();

    return 0;

}

上述執行結果為:non const/ const / const / non const / non const /const