c++中mutable關(guān)鍵字的作用是什么

c++
小億
138
2023-12-07 12:29:25
欄目: 編程語言

在C++中,mutable關(guān)鍵字被用于修飾類的成員變量。mutable關(guān)鍵字的作用是允許該成員變量在const成員函數(shù)中被修改,即使在該函數(shù)中不能修改其他成員變量。

通常情況下,const成員函數(shù)不允許修改類的成員變量,因?yàn)?code>const成員函數(shù)被視為不會(huì)對(duì)對(duì)象的狀態(tài)產(chǎn)生任何影響。然而,有時(shí)候有些成員變量可能需要在const成員函數(shù)中被修改,例如在緩存值的情況下。這時(shí)候可以使用mutable關(guān)鍵字來修飾這些成員變量,以允許在const成員函數(shù)中修改它們。

下面是一個(gè)示例代碼:

class Example {
public:
    int getValue() const {
        // 在const成員函數(shù)中修改mutable變量
        counter++;
        return value;
    }

private:
    int value;
    mutable int counter; // 使用mutable關(guān)鍵字修飾
};

在上面的代碼中,counter被標(biāo)記為mutable,因此它可以在const成員函數(shù)getValue()中被修改。而value沒有被標(biāo)記為mutable,因此在const成員函數(shù)中不能修改它。

0