程式語言教學誌
首頁 書籍與課程 遊戲 App 教材目錄 如何自學 C C++ C# Java Python EPUB 舊站

C++ 速查手冊

9.12 - mutable 成員

電子書購買頁面
Google Play - C++ 速查手冊
Readmoo - C++ 速查手冊
樂天 kobo - C++ 速查手冊

類別中的 const 的成員函數不能修改資料變數的值,但可修改宣告為 mutable 的成員變數,舉例如下

#include <iostream>
  
class Demo {
public:
    Demo(int pa) {
        a = pa;
    }
    
    int do_something() const {
        ++a;
        
        return a;
    }
    
private:
    mutable int a;
};

int main(void) {
    Demo d(24);
    std::cout << d.do_something() << std::endl;
    std::cout << d.do_something() << std::endl;
    
    return 0;
}

/* 《程式語言教學誌》的範例程式
   http://kaiching.org/
   檔名:u0912.cpp
   功能:示範 C++ 的類別
   作者:張凱慶*/

我們在資料成員 a 的部份加進 mutable 的宣告

mutable int a;

這樣 constdo_something() 就可以修改 a 的值

int do_something() const {
    ++a;
    
    return a;
}

編譯執行,結果如下

$ g++ u0912.cpp
$ ./a.out
25
26
$

相關教學影片

如果覺得這篇文章不錯~~

上一頁 9.11 - const 成員函數
回 C++ 速查手冊首頁
下一頁 9.13 - 巢狀類別
回 C++ 教材
回程式語言教材首頁
PM 3:42:51

Facebook Youtube GitHub 微博