在线观看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

    文章

    4365

    瀏覽量

    63838
  • C++
    C++
    +關注

    關注

    22

    文章

    2116

    瀏覽量

    74554
  • 變量
    +關注

    關注

    0

    文章

    614

    瀏覽量

    28751
  • 關鍵字
    +關注

    關注

    0

    文章

    37

    瀏覽量

    7004
  • CONST
    +關注

    關注

    0

    文章

    45

    瀏覽量

    8333
收藏 人收藏

    評論

    相關推薦

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

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

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

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

    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 ?67次下載

    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 ?1964次閱讀

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

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

    C++中的const關鍵字介紹

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

    const關鍵字應用總結

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

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

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

    快速掌握C語言關鍵字

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

    C語言關鍵字--typedef

    C語言關鍵字使用方法學習指南!
    的頭像 發表于 10-07 12:44 ?477次閱讀
    主站蜘蛛池模板: 国产在线成人一区二区 | 国产黄色大片又色又爽 | 免费黄色大片在线观看 | 久久福利青草精品资源站免费 | 中国一级特黄aa毛片大片 | 国产小视频免费在线观看 | 伊人亚洲综合网成人 | 免费在线播放视频 | 欧美成人观看免费全部完小说 | 婷婷丁香五 | 男男扒开后菊惩罚 | 亚洲色图欧美视频 | 一区二区三区中文字幕 | 黄色网址视频在线播放 | 永久免费视频网站在线观看 | 免费在线视频观看 | 色婷婷亚洲精品综合影院 | 在线看黄色的网站 | 亚1州区2区三区4区产品 | 性做久久久久久久免费看 | 日本黄色片段 | 亚洲区免费 | 国产精品www夜色影视 | 日本黄色免费网址 | 五月天毛片 | 日日操操干干 | 国产黄视频在线观看 | 美国一级大黄香蕉片 | 女人爽到喷水的视频大全在线观看 | 色综合色综合 | 国产精品亚洲四区在线观看 | 亚洲久优优色优在线播放 | 欧美成人猛男性色生活 | 四虎网站网址 | 精品日韩 | 天堂在线资源最新版 | 天天操天天摸天天射 | 国产大片91精品免费观看不卡 | 性欧美f | 四虎国产永久在线观看 | 一级毛片免费在线观看网站 |