阅读量:0
在C++中,mutable关键字通常用于类的成员函数中,用来指示一个成员变量可以在const成员函数中被修改。下面是几个mutable关键字的用法示例:
- 修改const成员函数中的mutable变量:
class MyClass { public: void constFunction() const { mutableVar = 10; } private: mutable int mutableVar; };
- 在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; }
- 在多线程编程中使用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关键字也可以用于同步访问共享变量。