在类中,如果你不希望某些数据被修改,可以使用const
关键字加以限定。const 可以用来修饰成员变量和成员函数。
1、const成员变量
1)只能在构造函数参数行中对const类型成员变量初始化。不能在构造函数中初始化const类型成员变量
class MyClass
{
public:
MyClass(const int a, float b);
~MyClass();
private:
const int const_varible;
};
MyClass::MyClass(const int a, float b)
:const_varible(a) //const成员变量只能在此初始化
{
//dosomthing
}
2、const成员函数
1)const 成员函数可以使用类中的所有成员变量,但是不能修改它们的值。
2) 常成员函数需要在声明和定义的时候在函数头部的结尾加上 const 关键字。
3)函数名和参数列表相同,一个带const和一个不带,视为重载函数
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::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;
}