在C++中如何正確使用mutable關(guān)鍵字

c++
小樊
85
2024-08-18 09:09:35

在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ù)中修改類的成員變量的功能。

0