字符類型: char
在C中,諸如’a’這樣的字符文字的類型是int, 使得許多C 程序員喫驚不已,但這種方法卻能在C語言中很好地運行。在C++中,類型爲int的字符文字在函數重載中就不適用:
void print(inti); //prints number
void print (char c); //prints character
main () {
print(‘a’); //we want this to call print(char)
}
我們想使函數調用print(‘a’)激活的是函數print(char), 由於這個原因,在C++中字符演化成了char 型。
enum有別於int
C++強化了枚舉(enum)的類型規則。沒有類型轉換,你再也不能將一個整型值賦給enum型變量了:
enum Herb (Parsley, Sage, Rosemary,Thyme);
Herb h1 = 2; //allowedin C, type violation in C++
Herb h2 = (Herb)2; //allowed in C and C++
在C++中賦值語句h1=2是不合法的,而類型轉換則能制止編譯器報錯。你仍舊可以在C++中使用枚舉類型的只來代替整型值;
int i =Sage; //allowed
char a[Thyme]; //allowed, but not necessarilyrecommended