C++const對(duì)象詳解

在使用C++語(yǔ)言開(kāi)發(fā)中,如果我們希望某一個(gè)對(duì)象在定義之后不被錯(cuò)誤的修改,我們可以將這個(gè)對(duì)象聲明為const對(duì)象,這樣這個(gè)對(duì)象的數(shù)據(jù)成員就不可以被更改。

1.定義const對(duì)象

const類(lèi)名 對(duì)象名;

類(lèi)名const對(duì)象名;

1)定義類(lèi)對(duì)象時(shí)可以將其指定為const對(duì)象。定義后const對(duì)象不能再被修改;

2)const對(duì)象不能調(diào)用非const類(lèi)型的成員函數(shù)。

在非const成員函數(shù)內(nèi)部,有可能會(huì)對(duì)對(duì)象的數(shù)據(jù)成員進(jìn)行修改,比如setHour()修改了對(duì)象的Hour值。而const類(lèi)型的成員函數(shù)是不會(huì)修改對(duì)象的數(shù)據(jù)成員的。

const數(shù)據(jù)成員

1.const數(shù)據(jù)成員

在類(lèi)內(nèi)部使用const關(guān)鍵字來(lái)聲明const數(shù)據(jù)成員。const數(shù)據(jù)成員的值不能被修改。

const int m_nNum;//定義了一個(gè)const數(shù)據(jù)成員

初始化時(shí)比較特殊,只能通過(guò)初始化列表初始化。不能在構(gòu)造函數(shù)里賦值。

2.初始化列表

構(gòu)造函數(shù)初始化列表以一個(gè)冒號(hào)開(kāi)始,接著是以逗號(hào)分隔的數(shù)據(jù)成員列表,每個(gè)數(shù)據(jù)成員后面跟一個(gè)放在括號(hào)中的初始化式。

初始化列表可以為數(shù)據(jù)成員初始化,不僅僅只是const數(shù)據(jù)成員。

我們?cè)跇?gòu)造函數(shù)外面添加了初始化列表,這個(gè)列表里面為const成員m_nNum賦了初始值10,如果我們有多個(gè)構(gòu)造函數(shù),必須在每一個(gè)構(gòu)造函數(shù)外面都對(duì)這個(gè)const成員添加初始化列表初始化,包括復(fù)制構(gòu)造函數(shù)。


const成員函數(shù)

1.const成員函數(shù)只能被const對(duì)象引用;

2.const成員函數(shù)內(nèi)可以引用const數(shù)據(jù)成員,也可以引用非const數(shù)據(jù)成員,但不能修改非const數(shù)據(jù)成員的值,也不能調(diào)用非const成員函數(shù);

3.const成員函數(shù)在聲明和定義的時(shí)候都必須加上const。


原文鏈接:http://www.maiziedu.com/wiki/cplus/const/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,666評(píng)論 1 51
  • C++文件 例:從文件income. in中讀入收入直到文件結(jié)束,并將收入和稅金輸出到文件tax. out。 檢查...
    SeanC52111閱讀 3,093評(píng)論 0 3
  • 本文博客園地址:http://www.cnblogs.com/xiongxuanwen/p/4290086.htm...
    先之閱讀 957評(píng)論 0 5
  • 在我的學(xué)校前面,有一條潺潺流動(dòng)的河。這條河經(jīng)過(guò)我們家鄉(xiāng),被宋家州大壩給攔了回去,成了現(xiàn)在這道美麗的瀟湘平湖。 春天...
    小水靈閱讀 569評(píng)論 2 3
  • 愛(ài)情在我的心里 劃出一到了傷口 刻下傷悲 我用沉默的眼淚 和滴著熱的血 在傷口 澆灌出一朵玫瑰 作為堅(jiān)強(qiáng)的點(diǎn)綴
    汩月閱讀 162評(píng)論 0 0

友情鏈接更多精彩內(nèi)容