C++中mutable关键字学习

发布时间 2023-10-01 21:06:27作者: lypbendlf

转自:https://liam.page/2017/05/25/the-mutable-keyword-in-Cxx/,讲的很好。

1.介绍

mutable即可变的,mutable 只能用来修饰类的数据成员;而被 mutable 修饰的数据成员,可以在 const 成员函数中修改。

例子:

class HashTable {
 public:
    //...
    std::string lookup(const std::string& key) const
    {
        if (key == last_key_) {
            return last_value_;
        }

        std::string value{this->lookupInternal(key)};

        last_key_   = key;
        last_value_ = value;

        return value;
    }

 private:
    mutable std::string last_key_;//用于缓存最近被查询的key和值
    mutable std::string last_value_;//在const函数中可更新。
};

 在匿名函数中可以:

 //似乎用处也不大的。。。