天天看点

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 会导致声明和定义处的函数原型冲突。

继续阅读