今天做了一道关于类常成员函数的题,顺便在这里总结一下思路:
class a
{
int num;
public:
a():num(0)
{}
int getnum() const //常成员函数
{
num =1;//错误
return num
}
};
num是类的成员变量,在类的常成员函数中不能改变类的变量,所以错误
class b
{
int *p;
b():p(new(0))
{}
int const *getp() const
{
*p=1;//正确
return p;
}
};
p是类的常指针,*P=1;并没有改变P的植,只是改变了P指向的内容,所以不会发生错误