阅读量:64
在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 class="hljs-built_in">lambda();
std::cout << x class="hljs-keyword">return 0;
}
- 在多线程编程中使用mutable关键字来修改共享的变量:
#include
#include
class Counter {
public:
void increment() const {
std::lock_guard lock(mutex) ;
mutableVar++;
}
int getValue() const {
std::lock_guard lock(mutex) ;
return mutableVar;
}
private:
mutable int mutableVar;
mutable std::mutex mutex;
};
int main() {
Counter counter;
counter.increment();
std::cout << counter class="hljs-built_in">getValue() << std class="hljs-keyword">return 0;
}
这些示例展示了mutable关键字的用法,它允许在const成员函数中修改类的成员变量,或者在lambda表达式中修改捕获的变量。在多线程编程中,mutable关键字也可以用于同步访问共享变量。