天天看點

C++ const成員函數(常成員函數)

1 定義

    const成員函數(常成員函數):成員函數()後加上const,如:void print()const。

2 目的

如果一個成員函數不對對象的任何成員資料的進行修改(最常見的為列印成員資訊的函數),那麼我們可以将這個成員函數設定為const函數,以保護對象資料。 如果在該函數裡面修改對象的成員資料,則編譯器就會報錯。

3 用法

我們通常将 get 函數設定為常成員函數。讀取成員變量的函數的名字通常以

get

開頭,後跟成員變量的名字,是以通常将它們稱為 get 函數。

     請看下面的例子:

//student.h 頭檔案
class Student
{
public:
    Student(char *name, int age, float score);
    void show();
    //聲明常成員函數
    char *getname() const;
    int   getage() const;
    float getscore() const;
private:
    char *m_name;
    int m_age;
    float m_score;
};

//student.cpp  源檔案
Student::Student(char *name, int age, float score): m_name(name), m_age(age), m_score(score)
{ }

void Student::show()
{
    cout<<m_name<<"的年齡是"<<m_age<<",成績是"<<m_score<<endl;
}

//定義常成員函數
char * Student::getname() const
{
    return m_name;
}
int Student::getage() const
{
    return m_age;
}
float Student::getscore() const
{
    return m_score;
}
           

特别提醒:必須在成員函數的聲明和定義處同時加上 const 關鍵字。

char *getname() const

char *getname()

是兩個不同的函數原型,如果隻在一個地方加 const 會導緻聲明和定義處的函數原型沖突。

繼續閱讀