mutable關鍵字詳解與實戰
在C++中mutable關鍵字是為了突破const關鍵字的限制,被mutable關鍵字修飾的成員變量永遠處于可變的狀態,即使是在被const修飾的成員函數中。
在C++中被const修飾的成員函數無法修改類的成員變量,成員變量在該函數中處于只讀狀態。然而,在某些場合我們還是需要在const成員函數中修改成員變量的值,被修改的成員變量與類本身并無多大關系,也許你會說,去掉函數的const關鍵字就行了??蓡栴}是,我只想修改某個變量的值,其他變量希望仍然被const關鍵字保護。
現在有個場景,我們想獲取函數被調用的次數,代碼如下:
class Widget{ public: Widget(); ~Widget() = default; int getValue() const; int getCount() const; private: int value; int count; };
這里我們想要獲取getValue函數被調用次數,普遍的做法是在getValue函數里對成員變量count進行加1處理,可是getValue被關鍵字const修飾啊,無法修改count的值。這個時候mutable派上用場了!我們用mutable關鍵字修飾count,完整代碼如下:
#include 《iostream》 class Widget{ public: Widget(); ~Widget() = default; int getValue() const; int getCount() const; private: int value; mutable int count; }; Widget::Widget() : value(1), count(0) { } int Widget::getValue() const{ count++; return value; } int Widget::getCount() const{ return count; } int main() { Widget w1; for(int i = 0; i 《 5; i++){ w1.getValue(); } std::cout 《《 w1.getCount() 《《 std::endl; return 0; }
被mutable修飾的成員變量count在getValue函數里進行加1計數,編譯運行輸出如下:
5
既保護了其他成員變量,又能達到我們單獨修改成員變量count值的目的。
責任編輯:haq
原文標題:C++ mutable關鍵字如何使用?
文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
關鍵字volatile的含意
interrupt關鍵字使用
C++程序異常的處理機制
Temu跨境電商按關鍵字搜索Temu商品API的應用及接口請求示例
哪些場合會用到volatile關鍵字?
天眼查平臺關鍵字搜索企業數據API接口技術指南
1688平臺關鍵字搜索商品API接口技術實踐指南
亞馬遜平臺根據關鍵字搜索商品API接口
簡單的內聯匯編介紹
亞馬遜 SP-API 深度開發:關鍵字搜索接口的購物意圖挖掘與合規競品分析
阿里巴巴開放平臺關鍵字搜索商品接口實戰詳解:OAuth2.0 認證落地 + 檢索效率優化(附避坑代碼)
阿里巴巴國際站關鍵字搜索 API 實戰:從多條件篩選到商品列表高效獲客
C++中mutable關鍵字詳解與實戰
評論