第五章 常量

5.1 為什么需要常量
【規(guī)則5-1-1】 盡量使用含義直觀的常量來(lái)表示那些將在程序中多次出現(xiàn)的數(shù)字或
字符串。

5.2 const 與#define的比較
(1) const 常量有數(shù)據(jù)類型,而宏常量沒(méi)有數(shù)據(jù)類型。編譯器可以對(duì)前者進(jìn)行類型安 全檢查。而對(duì)后者只進(jìn)行字符替換,沒(méi)有類型安全檢查,并且在字符替換可能會(huì) 產(chǎn)生意料不到的錯(cuò)誤(邊際效應(yīng))。
(2) 有些集成化的調(diào)試工具可以對(duì)const 常量進(jìn)行調(diào)試,但是不能對(duì)宏常量進(jìn)行調(diào)試。

【規(guī)則5-2-1】在 C++ 程序中只使用 const 常量而不使用宏常量,即 const 常量完全取代宏常量。

5.3 常量定義規(guī)則
【規(guī)則5-3-1】需要對(duì)外公開(kāi)的常量放在頭文件中,不需要對(duì)外公開(kāi)的常量放在定義文件的頭部。為便于管理,可以把不同模塊的常量集中存放在一個(gè)公共的頭文件中。

【規(guī)則5-3-2】如果某一常量與其它常量密切相關(guān),應(yīng)在定義中包含這種關(guān)系,而不應(yīng)給出一些孤立的值。

5.4 類中的常量
不能再類聲明中初始化const數(shù)據(jù)成員。因?yàn)轭惖膶?duì)象未被創(chuàng)建時(shí),編譯器不知道SIZE的值是什么。const數(shù)據(jù)成員的初始化只能在類構(gòu)造函數(shù)的初始化列表中進(jìn)行。
建立在整個(gè)類中都恒定的常量應(yīng)該用類中的枚舉來(lái)實(shí)現(xiàn)。
枚舉常量不會(huì)占用對(duì)象的存儲(chǔ)空間,它們?cè)诰幾g時(shí)被全部求值。枚舉常量的缺點(diǎn)是:它的隱含類型是整數(shù),其最大值有限,并且不能表示浮點(diǎn)數(shù)。

?著作權(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,679評(píng)論 1 51
  • 第一周的作業(yè)珊珊來(lái)遲。 第一張雪人的。感覺(jué)大雪花還是沒(méi)畫(huà)好,細(xì)細(xì)的毛筆沒(méi)有想象中好駕馭。 圓是手工畫(huà)的,感覺(jué)還不錯(cuò)...
    安靜的加百利閱讀 210評(píng)論 1 1
  • 35歲 你因?yàn)樯眢w越來(lái)越差 加班越來(lái)越少 晉升的速度也越來(lái)越緩慢 那天下班,媳婦告訴你 孩子要上幼兒園了 雙語(yǔ)的一...
    富貴閑人123閱讀 284評(píng)論 0 1

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