1.7.2 使用常量
程序定義了常量ALIEN_POINTS來表示外星人的分值。
const int ALIEN_POINTS = 150;
這里只需要在變量的定義之前加上const修飾符?,F(xiàn)在可以像使用任何整數(shù)一樣使用ALIEN_POINTS。注意,程序使用了大寫字母命名常量。這只是慣例,但一般都這么做。全部大寫的標識符告訴程序員它代表了一個常量。
下面一行代碼使用了常量:
int score = aliensKilled * ALIEN_POINTS;
殺死的外星人數(shù)目與每個外星人的分值相乘得到玩家的得分。常量的使用讓這行代碼的含義顯得很清晰。
陷阱
不能對常量賦新值。如果試圖這么做,會生成編譯錯誤。
1.7.3 使用枚舉類型
枚舉類型是unsigned int型常量的集合,其中的常量稱為枚舉數(shù)。通常情況下,這些枚舉數(shù)是相關的,并且有特定順序。這里給出一個枚舉類型的例子:
enum difficulty {NOVICE, EASY, NORMAL, HARD, UNBEATABLE};
這里定義了一個枚舉類型difficulty。默認情況下,枚舉數(shù)的值從0開始,每次加1。所以NOVICE等于0,EASY等于1,NORMAL等于2,HARD等于3,UNBEATABLE等于4。如果要定義自己的枚舉類型,只要在關鍵詞enum后面加上標識符,然后加上用花括號括起來的枚舉數(shù)列表。
下面定義了枚舉類型的變量。
difficulty myDifficulty = EASY;
變量myDifficulty被置為EASY(等于1)。myDifficulty是difficulty類型的變量,因此它能夠存儲枚舉類型中定義的值。也就是說,只能用NOVICE、EASY、NORMAL、HARD、UNBEATABLE、0、1、2、3或4這些值對myDifficulty賦值。
下面定義了另外一種枚舉類型。
enum shipCost {FIGHTER_COST = 25, BOMBER_COST, CRUISER_COST = 50};
本行代碼定義了shipCost這一枚舉類型,用來表示在策略游戲中建造這些飛船花費的資源點。在代碼中,某些枚舉數(shù)被賦予了特定的整數(shù)值。這些值表示每種船只的資源點。如果需要,可以對枚舉數(shù)賦值。沒有賦值的枚舉數(shù)的取值為前一個枚舉數(shù)的值加1。由于代碼沒有對BOMBER_COST賦值,因此它被初始化為26。
下面定義了這種新枚舉類型的一個變量。
shipCost myShipCost = BOMBER_COST;
還可以對枚舉數(shù)進行算術計算。
(CRUISER_COST - myShipCost)
這一小段代碼計算從Bomber升級到Cruiser所需的花費,與50–26相等,結果為24。