const去限定函数只允许发生在类的成员函数中,表明该函数不会修改类的成员变量,const放在成员函数的末尾,声明和定义都要加。
只能限定类的成员函数
const限定后,该成员函数不允许修改类的数据成员,也不允许调用非const函数,即使该函数没有修改类的数据成员,只要没有声明成const,就不能调用。
class Stack
{
public:
void Push(int elem);
int Pop(void);
int GetCount(void) const; // const 成员函数
private:
int m_num;
int m_data[100];
};
int Stack::GetCount(void) const
{
++m_num; // 编译错误,企图修改数据成员m_num
Pop(); // 编译错误,企图调用非const 函数
return m_num;
}