正文

類型、變量與標準(18)

通過游戲編程實戰(zhàn)教新手學C++編程 作者:(美)Michael Dawson


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。


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號