class CA
{
public:
CA();
~CA();
//void SetNum(int nNum);
//int GetNum();
void Func();
void SetNum(int nNum) const;
int GetNum() const;
private:
int m_nNum;
const int m_sNum;
};
CA::CA():m_sNum(0) //常成员必须在构造函数的初始化列表中初始化
{
m_nNum = 0;
}
CA::~CA()
{
}
/*void CA::SetNum(int nNum)
{
m_nNum = nNum;
//m_sNum = nNum; 常成员的值不可修改
}
int CA::GetNum()
{
m_nNum++;
return m_nNum;
}*/
void CA::SetNum(int nNum) const
{
//m_nNum = nNum; 常成员函数中不可有值的修改
}
int CA::GetNum() const
{
//Func(); 常成员函数不能调用非常成员
return m_nNum;
}
void CA::Func()
{
}
int main(int argc, char* argv[])
{
CA obj;
obj.Func(); //非常对象能够调用非常成员
obj.GetNum(); //非常对象能够调用常成员
const CA obj1;
//obj1.Func(); 常对象不能够调用非常成员
obj1.GetNum();//常对象只能调用常成员
return 0;
}