新聞中心
C++編程語言作為一種功能強大的語言,對開發(fā)人員來說作用是非常大的。不過,其中有很多應(yīng)用方式還需要我們?nèi)ゲ粩嗟奶接?,不斷從中汲取?jīng)驗來達到熟練的程度。下面我們就先為大家詳細介紹一下有關(guān)C++枚舉類型的相關(guān)概念。

成都創(chuàng)新互聯(lián)是一家專注于做網(wǎng)站、網(wǎng)站設(shè)計與策劃設(shè)計,新和網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:新和等地區(qū)。新和做網(wǎng)站價格咨詢:18982081108
1、枚舉enum的用途淺例
寫程序時,我們常常需要為某個對象關(guān)聯(lián)一組可選alternative屬性.例如,學生的成績分A,B,C,D等,天氣分sunny, cloudy, rainy等等。更常見的,打開一個文件可能有三種狀態(tài):input, output和append. 典型做法是,對應(yīng)定義3個常數(shù),即:
- const int input = 1;
- const int output = 2;
- const int append = 3;
然后,調(diào)用以下函數(shù):
- bool open_file(string file_name, int open_mode);
比如,
- open_file("Phenix_and_the_Crane", append);
這種做法比較簡單,但存在許多缺點,主要的一點就是無法限制傳遞給open_file函數(shù)的第2個參數(shù)的取值范圍,只要傳遞int類型的值都是合法的。(當然,這樣的情況下的應(yīng)對措施就是在open_file函數(shù)內(nèi)部判斷第二個參數(shù)的取值,只有在1,2,3范圍內(nèi)才處理。)
使用枚舉能在一定程度上減輕這種尷尬(注1),它不但能實現(xiàn)類似于之前定義三個常量的功能,還能夠?qū)⑦@三個值組合起來成為***的組。例如:
- enum open_modes {input = 1, output, append};
以上定義了open_modes為C++枚舉類型enumeration type。每一個命名了的枚舉都是唯一的類型,是一個類型標示器type specifier。例如,我們可以重新寫一個open_file函數(shù):
- bool open_file(string file_name, open_modes om);
在open_modes枚舉中,input, output, append稱為枚舉子enumerator, 它們限定了open_modes定義的對象的取值范圍。這個時候,調(diào)用open_file函數(shù)和之前的方法還是一模一樣:
- open_file("Phenix_and_the_Crane", append);
但是,如果傳遞給open_file的第二個參數(shù)不是open_modes枚舉類型值的話(注1),那么編譯器就會識別出錯誤;就算該參數(shù)取值等價于input, output, append中的某個,
也一樣會出錯哦!例如:
- open_file("Phenix_and_the_Crane", 1);
2、C++枚舉類型的定義
一個枚舉是一個類型,可以保存一組由用戶刻畫的值。定義之類,枚舉的使用很像一個整數(shù)類型。枚舉的定義具有以下形式,即以關(guān)鍵詞enum開頭,接著一個可選的枚舉名,下來是由大括號{}包含著一個由逗號分隔的枚舉子列表enumerators list:
- enum [enumeration name] {enumerator1[=value1],
enumerator2[=value2], ...};
【編輯推薦】
- C++繼承基礎(chǔ)概念詳解
- C++逗號操作符應(yīng)用方法詳解
- C++內(nèi)聯(lián)函數(shù)不宜使用情況介紹
- C++ inline函數(shù)正確應(yīng)用方法介紹
- C++ new用法相關(guān)經(jīng)驗總結(jié)
當前文章:C++枚舉類型用途及定義詳解
本文URL:http://m.5511xx.com/article/dpgchii.html


咨詢
建站咨詢
