前言
? ? ? ? ?"打牢基礎,萬事不愁" .C++的基礎語法的學習."學以致用,邊學邊用",編程是實踐性很強的技術,在運用中理解,總結.
引入
? ? ? ?枚舉在成熟框架中,用得還挺多的.枚舉可以讓程序更容易理解
? ? ? ? 之前寫過一篇關于枚舉的帖子--- ?白話編程---數據篇(4)枚舉-CSDN博客
? ? ? ? 現在看看是以純C寫的,內容不夠完整.現以C++做個補充
枚舉的編程思想
? ? ? ? 枚舉的意義是讓程序可讀性更強.他有三種形式,這三種形式的目的是相同的:參數符號化.也就是說他的編程思想是符號化參數.
C++中枚舉的三種形式
? ? ? ? 枚舉有三種形式: 符號常量集合, 無類作用域枚舉,類作用域枚舉 .其中符號常量集合可以完全替代常量(一般是整型常量),后兩種被看作自建的新數據類型.
?符號常量集合
? ? ? ? 第一種枚舉是完全的字面常量替代.還有一種符號常量const int LENGTH=10;枚舉相當于符號
常量的集合:
? ? ? ? 1,書寫形式:下面的表達完全是一樣.
enum {SLEEP=1,WORK=2,EAT=3}
const int SLEEP=1;
const int WORK=2;
const int EAT=3;
????????2,使用舉例:
#include<iostream>
enum {SLEEP=1,WORK=2,EAT=3};
void doSomething(int num);int main(void) {using namespace std;doSomething(SLEEP); //枚舉做參數,可讀性強doSomething(1); //整型常量做參數doSomething(2); //整型常量做參數
}void doSomething(int num) {if(num==1)std::cout << "我在做夢" << std::endl;if(num==2)std::cout << "我在寫代碼" << std::endl;if(num==3)std::cout << "我在吃肉" << std::endl;
}
說明:符號常量型枚舉的思路和實現步驟如下
? ? ? ? 1)需求:想表達一串邏輯,在"情形1","情形2"...等多種情形下做什么事,?
? ? ? ? 2)函數聲明用int類型做形參,函數內部邏輯和形參相關;
? ? ? ? 3)定義符號常量型枚舉
? ? ? ? 4)調用函數時傳入枚舉
在C++標準函數庫中,異常部分有調用exit(SUCCESS); ?exit(FAILURE)就是其應用