现在的位置: 首页 > 综合 > 正文

浅论mutable关键字

2018年01月31日 ⁄ 综合 ⁄ 共 465字 ⁄ 字号 评论关闭

Mutable单词的含义是:可变的Mutable关键字的作用是说明类的成员变量是可变的,即使在const成员方法中也可以变化而不引起编译错误。mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。

  我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰。
如下所示:

class A{

public

void test() const{//const表明此方法的代码不能改变调用此类的对象(*this对象)的成员变量

_name = "test";//错误,改变了*this对象的成员_name

_id = 1;//正确,因为_idmutable 的。

}

private:

mutable int _id;

string _name

};

注:effectiveC++第一条:尽量使用const.....

抱歉!评论已关闭.