关于常量成员函数

作者在 2011-10-12 23:24:45 发布以下内容
使用const关键字进行说明的成员函数,称为常成员函数。只有常成员函数才有资格操作常量或常对象,没有使用const关键字说明的成员函数不能用来操作常对象。常成员函数说明格式如下:

<类型说明符> <函数名> (<参数表>) const;

其中,const是加在函数说明后面的类型修饰符,它是函数类型的一个组成部分,因此,在函数实现部分也要带const关键字。下面举一例子说明常成员函数的特征。


例子:
class Coo
{
public:
Coo() : a(0)
{}
int getA() const //常量成员函数
{
++a; //编译错误
return this->a;
}
private:
mutable int a;
};

getA() 后面的 const 表明 getA()不会修改类的成员变量,
但也不能确定,可以用mutable改变这一限制.

用const结尾的成员函数只能调用其他const结尾的成员函数。因为其他函数并不能保证同样不修改类的成员变量

成员函数后加const,表示:类作者提示你,这个函数不会导致对象状态改变
可以理解为"表示这个函数不会修改任何成员变量"
但不可绝对化。其实,还是可以修改由mutable关键字修饰的成员变量的。
c++ | 阅读 1093 次
文章评论,共0条
游客请输入验证码
浏览66691次