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