在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关键字也可以用于同步访问共享变量。


