Item-1: const,enum,inline替#define

# define AspectRatio 1.653  //不建議,可能預(yù)編譯會(huì)遺失

const double AspectRatio = 1.653  //建議

當(dāng)我們用常量替換#define時(shí),有兩個(gè)特殊情況值得說(shuō)明:

  • 定義常量指針

    # define authorName "Fengww"   //不建議
    
    const char* const authorName = "Fengww" //指針和所指內(nèi)容都是const, 弱建議 const std::string authorName("Fengww")  //利用string of c++, 強(qiáng)建議
    
  • class專屬常量

對(duì)于define來(lái)說(shuō)不存在類的專屬,因?yàn)閐efine就是一個(gè)全局的符號(hào),所以這種變量的實(shí)現(xiàn)如下:

class Gameplayer{
private:
    static const int Num = 5; //常量的聲明,但是這里賦值了,這種做法只適合靜態(tài)整數(shù)變量
    int score[Num];
};

上面說(shuō)的整數(shù)是一個(gè)可以在聲明中賦值定義的特例,那么對(duì)于其他的類型變量,就必須用下面的方法來(lái)聲明和定義

//類的聲明放在頭文件
class Gameplayer{
private:
    static const double Num ; //常量的聲明,但是這里賦值了,這種做法只適合靜態(tài)整數(shù)變量
};
// 類中成員的定義放在實(shí)現(xiàn)文件
const double Gameplayer::Num = 1.635

那么現(xiàn)在又存在另一個(gè)問(wèn)題,就是我想向上面那樣在類的聲明中使用該變量怎么辦?那么可以采用下面的enum的方面:

//類的聲明放在頭文件
class Gameplayer{
private:
    enum {Num = 5} ; // 讓Num成為5的一個(gè)記號(hào)名稱,可以
    int scores[Num];  //同樣可以利用Num聲明一個(gè)數(shù)組,但無(wú)法取得Num的地址
};
?著作權(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,661評(píng)論 1 51
  • 1 讓自己習(xí)慣 C++ 條款01:視 C++ 為一個(gè)語(yǔ)言聯(lián)邦 將C++視為一個(gè)由相關(guān)語(yǔ)言組成的聯(lián)邦而非單一語(yǔ)言。在...
    暗夜望月閱讀 457評(píng)論 0 1
  • 2.變量和基本類型 3.字符串、向量和數(shù)組 4.表達(dá)式 5.語(yǔ)句 2.變量和基本類型 c++的算術(shù)類型: 一個(gè)ch...
    暮落晴空閱讀 803評(píng)論 0 0
  • 起始 昨天晚上做了個(gè)很荒誕的夢(mèng),所以一大早就起來(lái)把這個(gè)夢(mèng)給記錄下來(lái),怕它被我給遺忘掉。 夢(mèng)的內(nèi)容...
    筆得潘閱讀 276評(píng)論 0 3
  • 清晨睜開(kāi)惺忪的睡眼 用心諦聽(tīng)窗棱外的詩(shī)篇 朦朧的美感 可曾與你的夢(mèng)想遇見(jiàn) 清晨霞光溢滿天邊 用筆輕描一副溫情的畫(huà)卷...
    深深淺淺間閱讀 218評(píng)論 0 3

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