官术网_书友最值得收藏!

5.3 const與#define的比較

C++語言可以用const來定義常量,也可以用 #define來定義常量。但是前者比后者具有更多的優(yōu)點:

(1)const常量有數(shù)據(jù)類型,而宏常量沒有數(shù)據(jù)類型。編譯器可以對前者進行靜態(tài)類型安全檢查;而對后者只進行字符替換,沒有類型安全檢查,并且在字符替換時可能會產(chǎn)生意料不到的錯誤(邊際效應)。

(2)有些集成化的調(diào)試工具可以對const常量進行調(diào)試,但是不能對宏常量進行調(diào)試。

【提示5-3】: 所以在C++程序中應盡量使用const來定義符號常量,包括字符串常量。

要注意的是,const不僅僅用于定義符號常量,凡是需要編譯器幫助我們預防無意中修改數(shù)據(jù)的地方,都可以使用const,如const數(shù)據(jù)成員、const成員函數(shù)、const返回類型、const參數(shù)等。

【提示5-4】: const是constant的縮寫,是“恒定不變”的意思。被const修飾的東西都受到C++/C語言實現(xiàn)的靜態(tài)類型安全檢查機制的強制保護,可以預防意外修改,能提高程序的健壯性。請參考6.13節(jié)的論述。

主站蜘蛛池模板: 忻州市| 内黄县| 静安区| 哈尔滨市| 富源县| 无棣县| 民勤县| 会昌县| 简阳市| 繁昌县| 浪卡子县| 孝感市| 临夏县| 鸡西市| 体育| 浙江省| 兰考县| 岳池县| 固原市| 彭水| 通榆县| 万安县| 饶河县| 张家港市| 茌平县| 延寿县| 新民市| 松江区| 视频| 南平市| 岢岚县| 区。| 庆元县| 东港市| 高台县| 宜黄县| 阿荣旗| 永寿县| 永济市| 海晏县| 新沂市|