使用const说明的成员函数称为常成员函数。常成员函数不能修改对象数据成员的值,它通常用于获取对象的状态。
常对象在定义时就必须进行初始化。常对象的数据成员值在对象的整个生存周期内不能被改变。而且,为了对常对象进行保护,不允许常对象调用普通的成员函数,只能调用常成员函数。
常成员函数的声明形式: 返回类型 函数名(参数表) const;
void GetName(char* strName) const; //常成员函数 ……
void CStudent::GetName(char* strName) const
{
strcpy(strName, m_strName);
}
int main()
{
……
const CStudent Student_a("王五", "4646456", '0', "自动化");//常对象在定义的同时必须初始化
//Student_a.SetName("王五"); //错误:常对象只能调用常成员函数
Student_a.GetName(strName);
Student_a.GetID(strID);
……
return 0;
}