引入const的成员函数:常量成员函数
1、先看普通的成员函数
struct Student{
string getName(){
return m_Name;
}
string m_Name;
};
2、再看加了const的成员函数
struct Student{
/*
整个函数相当于,但是这么写是非法的只是讲明白怎么做的
string getName(const Student *const this){
return this->m_Name;
}
*/
string getName() const{
return m_Name;
}
string m_Name;
};
注:这里插一句,成员函数中有个隐式的this的参数,当某个对象调用该函数的时候,就会将这个对象的地址绑定到this指针上。
- 默认情况下(不加const)函数中的this指针是普通版本(非常量版本)的,这种情况下我们不能将常量对象绑定到this指针上;常量对象也不能够调用普通的成员函数。
- 由于我们调用函数getName()的时候并没有改变调用对象的操作,所以我们将这个函数改为常量的。所以我们将this指针声明成指向常量的指针。