在C++中,mutable
關鍵字用于修飾類的成員變量。它的作用是允許在常量成員函數中修改該成員變量的值。
默認情況下,常量成員函數(聲明為const
的成員函數)不能修改類的任何成員變量,因為它們被視為只讀操作。但有時候,我們可能希望在常量成員函數中修改某個成員變量的值,這時就可以使用mutable
關鍵字。
下面是一個使用mutable
關鍵字的示例:
class Example {
private:
mutable int counter; // 可變的成員變量
public:
Example() : counter(0) {}
void increment() const {
counter++; // 在常量成員函數中修改成員變量的值
}
int getCounter() const {
return counter;
}
};
在上面的示例中,counter
被聲明為mutable
,因此在常量成員函數increment()
中可以修改它的值。而getCounter()
也是一個常量成員函數,它只返回counter
的值而不會修改它。
使用mutable
關鍵字需要謹慎,因為它打破了常量成員函數的只讀性。只有在確實需要在常量成員函數中修改特定的成員變量時才應該使用mutable
。