# 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的地址
};