C++中mutable关键字的用法示例有哪些

avatar
作者
猴君
阅读量:0

在C++中,mutable关键字通常用于类的成员函数中,用来指示一个成员变量可以在const成员函数中被修改。下面是几个mutable关键字的用法示例:

  1. 修改const成员函数中的mutable变量:
class MyClass { public:     void constFunction() const {         mutableVar = 10;     }  private:     mutable int mutableVar; }; 
  1. 在lambda表达式中使用mutable关键字:
int main() {     int x = 5;     auto lambda = [x]() mutable {         x = 10;         std::cout << x << std::endl;     };      lambda();     std::cout << x << std::endl;      return 0; } 
  1. 在多线程编程中使用mutable关键字来修改共享的变量:
#include <iostream> #include <mutex>  class Counter { public:     void increment() const {         std::lock_guard<std::mutex> lock(mutex);         mutableVar++;     }      int getValue() const {         std::lock_guard<std::mutex> lock(mutex);         return mutableVar;     }  private:     mutable int mutableVar;     mutable std::mutex mutex; };  int main() {     Counter counter;      counter.increment();     std::cout << counter.getValue() << std::endl;      return 0; } 

这些示例展示了mutable关键字的用法,它允许在const成员函数中修改类的成员变量,或者在lambda表达式中修改捕获的变量。在多线程编程中,mutable关键字也可以用于同步访问共享变量。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!