色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

3天內(nèi)不再提示

淺談C++的mutable關(guān)鍵字

CHANBAEK ? 來源:明解嵌入式 ? 作者:Sharemaker001 ? 2023-04-15 11:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

#include 
class Car
{
public:
    Car();
    ~Car();
    int getPrice() const; /*調(diào)用方法  const成員函數(shù)*/
    int getLen() const; /*調(diào)用方法 const成員函數(shù)*/
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修飾的成員函數(shù)無法修改類的成員變量,成員變量在該函數(shù)中處于只讀狀態(tài)。 然而,在某些場合我們還是需要在const成員函數(shù)中修改成員變量的值,被修改的成員變量與類本身并無多大關(guān)系,也許你會說,去掉函數(shù)的const關(guān)鍵字就行了。 可問題是,我只想修改某個變量的值,其他變量希望仍然被const關(guān)鍵字保護。 這樣做相當于在函數(shù)中給mutable變量開了特例。

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4379

    瀏覽量

    64766
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2119

    瀏覽量

    75209
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    614

    瀏覽量

    28936
  • 關(guān)鍵字
    +關(guān)注

    關(guān)注

    0

    文章

    37

    瀏覽量

    7060
  • CONST
    +關(guān)注

    關(guān)注

    0

    文章

    45

    瀏覽量

    8450
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    C語言關(guān)鍵字const的幾種用法

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

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

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

    C++筆記010:C++C的擴展——register關(guān)鍵字增強

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

    C語言volatile關(guān)鍵字詳解 精選資料分享

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

    標準C語言總共有32個關(guān)鍵字

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

    C++語言基礎(chǔ)講解視頻標識符與關(guān)鍵字

    C++語言基礎(chǔ)講解視頻標識符與關(guān)鍵字,喜歡的朋友可以下載來學(xué)習(xí)。
    發(fā)表于 01-14 15:31 ?7次下載

    C語言32個關(guān)鍵字

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

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

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

    C++C的const關(guān)鍵字有何差別?

    C++C中的const關(guān)鍵字有何差別?
    的頭像 發(fā)表于 02-03 14:51 ?2073次閱讀

    C++mutable關(guān)鍵字詳解與實戰(zhàn)

    mutable關(guān)鍵字詳解與實戰(zhàn) 在C++mutable關(guān)鍵字是為了突破const關(guān)鍵字的限制,
    的頭像 發(fā)表于 09-10 09:23 ?5770次閱讀

    C++中的const關(guān)鍵字介紹

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

    const關(guān)鍵字應(yīng)用總結(jié)

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

    C語言32個關(guān)鍵字可以分為這幾類

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

    快速掌握C語言關(guān)鍵字

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

    C語言關(guān)鍵字--typedef

    C語言關(guān)鍵字使用方法學(xué)習(xí)指南!
    的頭像 發(fā)表于 10-07 12:44 ?613次閱讀
    主站蜘蛛池模板: 色播播影院 | 日韩高清特级特黄毛片 | jk白丝袜美女被男人桶 | 亚洲高清视频一区 | 日韩少妇爆乳无码专区 | 精品一区二区三区在线成人 | 久久免费看少妇级毛片蜜臀 | 日本美国群交P片内射捆绑 日本毛片久久国产精品 | 99C视频色欲在线 | 快播电影频道 | 钉钉女老师| 护士12p | 天天爽夜夜爽夜夜爽 | 一本道mw高清码二区三区 | 中文字幕精品在线视频 | 亚洲欧洲精品A片久久99 | 亚洲va精品中文字幕 | 精品伊人久久 | 亚洲伊人久久精品 | 麻豆高潮AV久久久久久久 | 果冻传媒2021一二三区 | GAY2022空少被体育生暴菊 | 久久精品麻豆国产天美传媒果冻 | 亚洲日韩天堂在线中文字幕 | 国产成人精品综合在线 | 亚洲午夜精品A片久久软件 亚洲午夜精品A片久久不卡蜜桃 | 一一本之道高清视频在线观看中文字幕 | 国产亚洲精品久久久久苍井松 | 国产爱豆果冻传媒在线观看视频 | 男人插曲女人的视频 | 欧美丰满熟妇BBB久久久 | 日日噜噜噜噜夜夜爽亚洲精品 | 久久九九少妇免费看A片 | 亚洲欧美日韩综合影院 | 欧美激情视频一区二区 | 99re久久免费热在线视频手机 | jizz69女士第一次 | 18岁男人女人插孔 | 久久伊人精品青青草原2021 | 日本亚洲中文字幕无码区 | caoporn 超碰在线视频 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品