C++,字符區別

字符類型: 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章