1.7 使用常量
常量是經(jīng)過命名的無法修改的值。如果程序中頻繁地使用到不變化的值,常量就很有用。例如,在編寫太空射擊游戲時(shí),每個(gè)在空中擊毀的外星人都值150分,那么就可以定義一個(gè)名為ALIEN_POINTS的常量,其值為150。然后每次需要使用外星人的分?jǐn)?shù)時(shí),就可以使用ALIEN_POINTS而不是數(shù)字150。
常量有兩大優(yōu)勢。首先,它讓程序更加清晰易懂。一眼看到ALIEN_POINTS,就能知道它的意思。如果查看的代碼中有150,我們也許并不知道它代表的含義。第二,常量讓修改變得簡單。例如,在試玩游戲時(shí),決定每個(gè)外星人應(yīng)該值250分,有了常量,只需要在程序中改變ALIEN_POINTS的初始值。如果沒有常量,就不得不找到每處的150,然后修改成250。
1.7.1 Game Stats 3.0程序簡介
Game Stats 3.0程序使用常量表示值。首先,程序計(jì)算玩家的得分,然后計(jì)算策略游戲中單位升級所需的花費(fèi)。圖1-8顯示了程序結(jié)果。
從Course Technology網(wǎng)站(www.courseptr.com/downloads)或本書合作網(wǎng)站(http://www. tupwk.com.cn/downpage)上可以下載到該程序的代碼。程序位于Chapter 1文件夾中,文件名為game_stats3.cpp。
圖1-8 每次計(jì)算都使用了常量,可以使代碼含義更加清晰易懂
// Game Stats 3.0
// Demonstrates constants
#include <iostream>
using namespace std;
int main()
{
const int ALIEN_POINTS = 150;
int aliensKilled = 10;
int score = aliensKilled * ALIEN_POINTS;
cout << "score: " << score << endl;
enum difficulty {NOVICE, EASY, NORMAL, HARD, UNBEATABLE};
difficulty myDifficulty = EASY;
enum shipCost {FIGHTER_COST = 25, BOMBER_COST, CRUISER_COST = 50};
shipCost myShipCost = BOMBER_COST;
cout << "\nTo upgrade my ship to a Cruiser will cost "
<< (CRUISER_COST - myShipCost) << " Resource Points.\n";
return 0;
}