C++Primer之4.6枚举读书笔记
生活随笔
收集整理的這篇文章主要介紹了
C++Primer之4.6枚举读书笔记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C++的enum工具提供了另一種創建符號常量的方式,這種方式可以代替const。它還允許定義新類型,但必須按照嚴格的限制進行。使用enum的句法與使用結構相似。例:
enum spectrum{red,orange,yellow,green,blue,violet,indigo,ultraviolet}; #這條語句完成了兩項工作#1.讓spectrum成為新類型的名稱;spectrum被稱為枚舉(enumeration),就像struct被稱為結構體一樣。#2.將red、orange、yellow等作為符號常量,它們對應的數值0~7.這些常量叫做枚舉量。在默認情況下,將整數值賦給枚舉量,第一個枚舉量的值是0,第二個是1,依此類推,可以通過顯式地指定整數值來覆蓋默認值。
可以用枚舉名來聲明這種類型的變量:
spectrum band; // band a variable of type spectrum在不進行強制類型轉換的情況下,只能將定義枚舉時使用的枚舉量賦給這種枚舉的變量。例:
band=blue; // vaild,blue is an enumerator band=2000;//invaile,2000 not an enumerator對于枚舉,只定義了賦值運算符,沒有為枚舉定義算術運算:
band=orange; // valid ++band; // not vaild band=orange+red; //not vaild,but a little tricky枚舉量是整型,可被提升為Int類型,但int類型不能自動轉換為枚舉類型:
int color =blue; // vaild,spectrum type promoted to int band=3; //invaild,int not convered to spectrum color =3+red; //vaild,red converted to int? ? ? ? ? 可以使用賦值運算符來顯式地設置枚舉量的值:
enum bits{one=1,two=2,four=4,eight=8}; #指定的值必須是整數。也可以只顯式地定義其中一些枚舉量的值: enum bigstep{first,second=100,third}; //first在默認情況下為0,后面沒有被初始化的枚舉量的值將比前面的枚舉量大1.因此third的值為【0】(上取整0) ##可以創建多個值相同的枚舉量: enum{zero,null=0,one,numero_uno=1}; //其中zero和null都為0,one和numero_uno都為1.? ?2.枚舉的取值范圍
? ? ? ? ? 每個枚舉都有取值范圍,通過強制類型轉換,可以將取值范圍中的任何整數值賦給枚舉量,即使這個值不是枚舉值。
#設bits和myflag的定義如下: enum bits{one =1,two=2,four=4,eight=8}; bits myflag; myflag =bits(6) //vaild,because 6 is in bits range 其中6不是枚舉值,但它位于枚舉定義的取值范圍內。取值范圍的定義:
? 首先,要找出上限,需要知道枚舉量的最大值。找到大于這個最大值的、最小的2的冪,將它減去1,得到的便是取值范圍的上限。要計算下限,需要知道枚舉量的最小值。如果它不小于0,則取值范圍的下限為0;否則,采用與尋找上限方式相同,但加上負號。
總結
以上是生活随笔為你收集整理的C++Primer之4.6枚举读书笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 32x32Booth乘法器
- 下一篇: UOS国产操作系统试用图解+网络配置