在C++中,mutable關(guān)鍵字被用于修飾類的成員變量,表示這些變量可以在const成員函數(shù)中被修改。通常情況下,const成員函數(shù)是不能修改類的成員變量的,但是如果某個(gè)成員變量被聲明為mutable,那么在const成員函數(shù)中可以通過該變量進(jìn)行修改。
下面是一個(gè)使用mutable關(guān)鍵字的簡(jiǎn)單示例:
#include <iostream>
class Example {
public:
int getValue() const {
// 在const成員函數(shù)中修改mutable變量
m_counter++;
return m_counter;
}
private:
mutable int m_counter = 0;
};
int main() {
Example ex;
std::cout << ex.getValue() << std::endl; // 輸出1
std::cout << ex.getValue() << std::endl; // 輸出2
return 0;
}
在上面的示例中,類Example中的m_counter成員變量被聲明為mutable,因此在getValue() const函數(shù)中可以對(duì)其進(jìn)行修改。通過調(diào)用getValue()函數(shù),每次輸出的結(jié)果都會(huì)遞增。這樣就實(shí)現(xiàn)了在const成員函數(shù)中修改類的成員變量的功能。