在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺談C++的mutable關鍵字

CHANBAEK ? 來源:明解嵌入式 ? 作者:Sharemaker001 ? 2023-04-15 11:13 ? 次閱讀

C++11中推出了一種特殊的關鍵字:mutable用于修飾類變量。 它的作用是標注該變量一定會被修改,因此也就不是const類型。 目的是為了使這些成員變量在被const關鍵字修飾的成員函數中使用時,可以被修改。

但是我們會發現一個問題,那就是不使用const修飾的變量本身就是可以修改的,那為什么還要添加mutable關鍵字呢? 這里涉及到一個用法,也是關于mutable的最常用的基本用法了。 如果不希望類成員函數修改類對象的狀態,那么這個成員函數一般會被const修飾,修飾成員函數后就不可以更改成員變量。 如果我們需要在const成員函數中修改一些與類對象狀態無關的成員變量,就可以用mutable來將這些成員變量修改為可變的。
直接看下面這個例子:

#include 
class Car
{
public:
    Car();
    ~Car();
    int getPrice() const; /*調用方法  const成員函數*/
    int getLen() const; /*調用方法 const成員函數*/
private:
    int m_carPrice;
    int m_carLen;
    mutable int m_carNum;            
};


Car::Car()
{
    m_carPrice = 50000;
    m_carLen = 5;
    m_carNum = 5;
}

Car::~Car()
{
}


int Car::getPrice() const
{
    m_carNum++;    //此處修改是可以,因為對m_carNum進行了mutable限定
    std::cout << m_carPrice  << std::endl;
    return m_carPrice ; // 無法修改該成員變量
}


int Car::getLen() const
{
    return m_carLen; // 無法修改該成員變量
}

可以看到,在C++中被const修飾的成員函數無法修改類的成員變量,成員變量在該函數中處于只讀狀態。 然而,在某些場合我們還是需要在const成員函數中修改成員變量的值,被修改的成員變量與類本身并無多大關系,也許你會說,去掉函數的const關鍵字就行了。 可問題是,我只想修改某個變量的值,其他變量希望仍然被const關鍵字保護。 這樣做相當于在函數中給mutable變量開了特例。

簡單理解,在C++中,mutable就是為了突破成員函數 const的限制,可以在const函數里面來修改被mutable修飾的成員變量。 即使在一個const函數中,被mutable修飾的變量,將永遠處于可變的狀態。 這樣,既保護了其他成員變量,又能達到我們單獨修改成員變量count值的目的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    62979
  • C++
    C++
    +關注

    關注

    22

    文章

    2114

    瀏覽量

    73860
  • 變量
    +關注

    關注

    0

    文章

    613

    瀏覽量

    28467
  • 關鍵字
    +關注

    關注

    0

    文章

    37

    瀏覽量

    6926
  • CONST
    +關注

    關注

    0

    文章

    45

    瀏覽量

    8189
收藏 人收藏

    評論

    相關推薦

    C語言關鍵字const的幾種用法

    本期來講解一個C語言的關鍵字——const。
    發表于 06-21 11:05 ?1718次閱讀
    <b class='flag-5'>C</b>語言<b class='flag-5'>關鍵字</b>const的幾種用法

    C++中常用關鍵字詳解(2)

    C++中,volatile是一個關鍵字,用于修飾變量,告訴編譯器該變量的值可能在程序流程之外被意外修改,因此編譯器不應該對該變量進行優化(如緩存變量值或重排指令順序)。
    發表于 08-08 16:15 ?377次閱讀

    C++筆記010:C++C的擴展——register關鍵字增強

    的地址在C語言里面是會出錯的。同樣的代碼我們放到C++編譯環境下,發現編譯是通過的!在C++中依然支持register關鍵字C++編譯器有
    發表于 08-11 12:34

    C語言volatile關鍵字詳解 精選資料分享

    1.volatile和什么有關百度翻譯是這樣子翻譯volatile的:圖1-1 百度翻譯volatile截圖volatile屬于C語言的關鍵字,《C Primer Puls》 是這樣解釋關鍵字
    發表于 07-22 07:20

    標準C語言總共有32個關鍵字

    標準C語言總共有32個關鍵字
    發表于 01-12 15:59 ?0次下載

    C++語言基礎講解視頻標識符與關鍵字

    C++語言基礎講解視頻標識符與關鍵字,喜歡的朋友可以下載來學習。
    發表于 01-14 15:31 ?7次下載

    C語言32個關鍵字

    C語言32個關鍵字,感興趣的小伙伴們可以看看。
    發表于 07-26 16:29 ?66次下載

    C51的符號和五大語句及關鍵字等詳細資料說明

    本文檔的主要內容詳細介紹的是C51的符號和五大語句及關鍵字等詳細資料說明包括了:C語言 基本標點符號,函數書寫格式與函數調用,單片機五大語句與32個C語言
    發表于 12-11 17:34 ?31次下載
    <b class='flag-5'>C</b>51的符號和五大語句及<b class='flag-5'>關鍵字</b>等詳細資料說明

    C++C的const關鍵字有何差別?

    C++C中的const關鍵字有何差別?
    的頭像 發表于 02-03 14:51 ?1858次閱讀

    C++mutable關鍵字詳解與實戰

    mutable關鍵字詳解與實戰 在C++mutable關鍵字是為了突破const關鍵字的限制,
    的頭像 發表于 09-10 09:23 ?5598次閱讀

    C++中的const關鍵字介紹

    前一篇文章我們主要介紹了C++中的復合類型引用和指針,這篇文章我們將會主要介紹C++中const關鍵字。有時候我們想定義一個值不能被改變的變量,例如我們想使用一個變量存儲buffer的大小,如果我們不希望這個值被改變,那么我們就
    的頭像 發表于 03-17 14:01 ?719次閱讀

    const關鍵字應用總結

    C++中的const關鍵字的用法非常靈活,而使用const將大大改善程序的健壯性
    的頭像 發表于 05-26 09:06 ?615次閱讀

    C語言32個關鍵字可以分為這幾類

    C語言是一種面向過程、抽象化的通用程序設計語言,廣泛應用于嵌入式底層和系統開發。C語言關鍵字共有32個,根據用途,可分為四類:第一類:變量數據類型關鍵字:14個第二類:9條基本語句用到
    的頭像 發表于 12-31 15:28 ?5196次閱讀
    <b class='flag-5'>C</b>語言32個<b class='flag-5'>關鍵字</b>可以分為這幾類

    快速掌握C語言關鍵字

    C語言中的32個關鍵字你知道多少個呢?根據關鍵字的作用分為四類:數據類型關鍵字、控制語句關鍵字、存儲類型
    的頭像 發表于 07-06 08:04 ?427次閱讀
    快速掌握<b class='flag-5'>C</b>語言<b class='flag-5'>關鍵字</b>

    C語言關鍵字--typedef

    C語言關鍵字使用方法學習指南!
    的頭像 發表于 10-07 12:44 ?344次閱讀
    主站蜘蛛池模板: 免费人成在线观看网站品爱网日本 | 亚洲男人的天堂久久香蕉 | 国产98在线传媒在线视频 | 亚洲香蕉影视在线播放 | 国产一级特黄aa级特黄裸毛片 | 欧色视频 | 一区二区三区伦理 | 五月天婷婷丁香中文在线观看 | 亚洲色图第一页 | 日韩一级免费视频 | 亚洲精品网站日本xxxxxxx | 8090yy理论三级在线观看 | 在线视免费频观看韩国aaa | 四虎影院网 | 国产成人精品日本亚洲网站 | 国产三级精品播放 | 亚洲午夜精品久久久久久成年 | 亚洲aⅴ久久久噜噜噜噜 | 天天干干天天 | 色噜噜狠狠成人网 | h视频免费在线 | 欧美视频在线观在线看 | 亚洲va国产日韩欧美精品色婷婷 | 欧美色图在线视频 | 91日本视频 | 四虎国产精品免费观看 | 亚洲视频一区网站 | a级特黄毛片 | 亚洲国产欧美日韩一区二区三区 | 国模私拍视频在线 | 亚洲理论在线 | 天堂在线中文 | 亚洲人成网站在线观看妞妞网 | 国产一级aaa全黄毛片 | 欧美在线视频二区 | 97超频国产在线公开免费视频 | 国产乱码免费卡1卡二卡3卡四 | 欧美性极品hd高清视频 | 亚洲欧美成人 | 中文字幕第十页 | 欧美tube6最新69 |