C++中,类的const成员函数有什么用

来源:百度知道 编辑:UC知道 时间:2024/09/25 11:14:57
如题,const对象是防止修改对象的成员值,那么const成员函数的作用是什么?

类的非static(静态)成员函数有一个默认实参this,代表当前类对象,const就是修饰这个实参的,意思是函数不能修改这个类对象的值
如下列代码
class cls
{ ...//省略
return_type func()const;
}
//在主函数中
cls a;
a.func();
上面函数中const的意思就是不能修改a

也可以等价的这么看
return_type func()const等价于
static return_type func(const *this);

跟define差不多。
“做什么用”这个问题其实没必要问。等你觉得需要自然就知道了, 你要是不觉得需要的话,无论举什么例子你都觉得这例子是瞎编的

表面该函数不可改变成员的值
例如
class A
{
public:
int func() const;
private:
int a;
};

则func()里面如果对a进行了修改,则会报错。 用来提示别人这是个只读函数

const成员函数表示该函数只能读不能改成员变量
比如类A有个成员变量m_count
只能用这个值,但不能修改这个值,