目錄
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到遂昌網(wǎng)站設(shè)計(jì)與遂昌網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋遂昌地區(qū)。一.什么是枚舉enum(WHAT)
二.使用枚舉enum的場(chǎng)景(WHEN and WHERE)
三.如何使用枚舉enum(HOW)
1)枚舉的定義
2)枚舉的初始化
3)指定枚舉類型?
4)聲明枚舉對(duì)象
5)枚舉對(duì)象賦值問(wèn)題
6)枚舉的取值范圍
四.枚舉enum的應(yīng)用
枚舉(enumeration)和類相似,能夠定義一種新的數(shù)據(jù)類型,不同的是,枚舉是將一組整形常量組織在一起,所以和類的使用方法有一些類似之處。
二.使用枚舉enum的場(chǎng)景(WHEN and WHERE)實(shí)際中經(jīng)常使用枚舉來(lái)做數(shù)據(jù)的標(biāo)識(shí),可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的分類,打個(gè)比方類似于用Ture和False區(qū)分是與非,而枚舉也可以在此基礎(chǔ)上也用整形常量的方式對(duì)數(shù)據(jù)進(jìn)行更多的分類。
三.如何使用枚舉enum(HOW) 1)枚舉的定義1.不限定作用域的枚舉
enum color
{
RED,
GREEN,
BLUE
};
2.限定作用域的枚舉在enum后面加關(guān)鍵字class或者struct
enum class color
{
RED,
GREEN,
BLUE
};
3.二者區(qū)別?
解決枚舉值重名的問(wèn)題,保持代碼的可讀性
//定義兩種枚舉
enum class color_inner
{
RED,
GREEN,
BLUE
};
enum color_out
{
RED,
GREEN,
BLUE
};
//聲明并賦值
color_out backColor = RED; //正確
color_inner forntColor = RED; //錯(cuò)誤,默認(rèn)使用了out中的RED,沒(méi)有指定作用域
color_out backColor = color_out::RED; //正確,out也可以顯示指定作用域
color_inner forntColor = color_inner::RED; //正確,inner必須指定作用域
2)枚舉的初始化1.默認(rèn)情況下,枚舉值從0開(kāi)始,依次加1
enum color
{
RED, //默認(rèn)是0
GREEN, //默認(rèn)是1
BLUE //默認(rèn)是2
};
2.手動(dòng)指定枚舉值a.可以全部指定
enum color
{
RED=1,
GREEN=5,
BLUE=7
};
b.可以部分指定,未被初始化的枚舉值的值默認(rèn)將比其前面的枚舉值大1
enum color
{
RED=2,
GREEN, //默認(rèn)值是3,比前一個(gè)多1
BLUE=7
};
c.可以重復(fù)指定
enum color
{
RED=8,
GREEN=5,
BLUE=8 //重復(fù)指定
};
3)指定枚舉類型?C++11中,還可以指定給枚舉類型賦值的整數(shù)類型,在enum的名字后面加上冒號(hào)以及指定的類型,限定作用域枚舉默認(rèn)為32位整形,在某些情況下,甚至沒(méi)必要用到32位,為了節(jié)省開(kāi)銷(xiāo),甚至可以用8位整形unsigned char,將類型指定成后,枚舉變量變成了8位整型,減少了內(nèi)存使用。不限定作用域的枚舉類型,其成員不存在默認(rèn)類型,只需要知道潛在類型是足夠大的,肯定能容納枚舉值就行。
需要注意的是,不能指定為float或者double等類型,因?yàn)槊杜e量必須是一個(gè)整數(shù),float和double都不是整數(shù)。
enum color:unsigned long
{
RED=1,
GREEN=5,
BLUE=7
};
4)聲明枚舉對(duì)象a.先聲明變量,再對(duì)變量賦值
#includeusing namespace std;
int main()
{
enum color
{
RED,
GREEN,
BLUE
};
enum color backColor, frontColor, innerColor;
backColor = RED;
frontColor = GREEN;
innerColor = BLUE;
cout<< backColor<< "--"<< frontColor<< "--"<< innerColor<< endl;
system("pause");
return 0;
}
b.聲明變量的同時(shí)賦初值
#includeusing namespace std;
int main()
{
enum color
{
RED,
GREEN,
BLUE
};
enum color backColor = RED, frontColor = GREEN, innerColor = BLUE;
cout<< backColor<< "--"<< frontColor<< "--"<< innerColor<< endl;
system("pause");
return 0;
}
c.定義類型的同時(shí)聲明變量,然后對(duì)變量賦值
#includeusing namespace std;
int main()
{
enum color
{
RED,
GREEN,
BLUE
}backColor, frontColor, innerColor;
backColor = RED;
frontColor = GREEN;
innerColor = BLUE;
cout<< backColor<< "--"<< frontColor<< "--"<< innerColor<< endl;
system("pause");
return 0;
}
d.類型定義,變量聲明,賦初值同時(shí)進(jìn)行
#includeusing namespace std;
int main()
{
enum color
{
RED,
GREEN,
BLUE
}backColor = RED, frontColor = GREEN, innerColor = BLUE;
cout<< backColor<< "--"<< frontColor<< "--"<< innerColor<< endl;
system("pause");
return 0;
}
5)枚舉對(duì)象賦值問(wèn)題a.不能將非枚舉量賦給枚舉變量,能將枚舉量賦給非枚舉變量,因?yàn)槊杜e量是符號(hào)常量,編譯器會(huì)自動(dòng)把枚舉量轉(zhuǎn)換為int類型
int a;
a=RED;
b.枚舉變量不能進(jìn)行算術(shù)運(yùn)算,對(duì)于枚舉,只定義了賦值運(yùn)算符,沒(méi)有為枚舉定義算術(shù)運(yùn)算,錯(cuò)誤的算數(shù)計(jì)算會(huì)導(dǎo)致范圍超限問(wèn)題
RED++; //錯(cuò)誤
RED=GREEN+BLUE; //錯(cuò)誤
c.賦值超限問(wèn)題
backColor = color(2); //等同于backColor = BLUE;
backColor = color(10); //錯(cuò)誤,超過(guò)color元素上限
6)枚舉的取值范圍上限:需要知道枚舉量的大值。找到大于這個(gè)大值的、最小的2的冪,將它減去1,得到的便是取值范圍的上限
enum color:unsigned long
{
RED=1,
GREEN=5,
BLUE=7 //上限是8-1=7
};
backColor = color(7); //所以可以取到7
下限:枚舉量的最小值不小于0,則枚舉下限取0;枚舉量的最小值小于0,則枚舉下限是 小于最小枚舉量的 大的2的冪,加上1。
enum color:unsigned long
{
RED=-1,
GREEN=-5,
BLUE=-7 //下限是-8+1=-7
};
backColor = color(-7); //所以可以取到-7
四.枚舉enum的應(yīng)用1.常和Switch搭配使用
enum color{RED, GREEN, BLUE}backColor=RED;
switch (backColor)
{
case RED:{...;break;}
case GREEN:{...;break;}
case BLUE:{...;break;}
default:break;
}
2.if...else搭配使用
enum color{RED, GREEN, BLUE};
color backColor=RED;
void SetColor(color color)
{
backColor = color ;
}
if(backColor==RED)
{
cout<<"color is RED"<
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧