国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C++】枚舉enum使用詳解

這篇具有很好參考價值的文章主要介紹了【C++】枚舉enum使用詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一.什么是枚舉enum(WHAT)

二.使用枚舉enum的場景(WHEN and WHERE)

三.如何使用枚舉enum(HOW)

1)枚舉的定義

2)枚舉的初始化

3)指定枚舉類型?

4)聲明枚舉對象

5)枚舉對象賦值問題

6)枚舉的取值范圍

四.枚舉enum的應(yīng)用


一.什么是枚舉enum(WHAT)

枚舉(enumeration)和類相似,能夠定義一種新的數(shù)據(jù)類型,不同的是,枚舉是將一組整形常量組織在一起,所以和類的使用方法有一些類似之處。

二.使用枚舉enum的場景(WHEN and WHERE)

實際中經(jīng)常使用枚舉來做數(shù)據(jù)的標(biāo)識,可以實現(xiàn)對數(shù)據(jù)的分類,打個比方類似于用Ture和False區(qū)分是與非,而枚舉也可以在此基礎(chǔ)上也用整形常量的方式對數(shù)據(jù)進行更多的分類。

三.如何使用枚舉enum(HOW)

1)枚舉的定義

1.不限定作用域的枚舉

	enum color
	{
		RED,
		GREEN,
		BLUE
	};

2.限定作用域的枚舉

在enum后面加關(guān)鍵字class或者struct

	enum class color
	{
		RED,
		GREEN,
		BLUE
	};

3.二者區(qū)別?

解決枚舉值重名的問題,保持代碼的可讀性

//定義兩種枚舉
	enum class color_inner
	{
		RED,
		GREEN,
		BLUE
	};

	enum color_out
	{
		RED,
		GREEN,
		BLUE
	};

//聲明并賦值
color_out backColor = RED; //正確
color_inner forntColor = RED; //錯誤,默認使用了out中的RED,沒有指定作用域

color_out backColor = color_out::RED; //正確,out也可以顯示指定作用域
color_inner forntColor = color_inner::RED;  //正確,inner必須指定作用域

2)枚舉的初始化

1.默認情況下,枚舉值從0開始,依次加1

	enum color
	{
		RED,  //默認是0
		GREEN, //默認是1
		BLUE  //默認是2
	};

2.手動指定枚舉值

a.可以全部指定

	enum color
	{
		RED=1,  
		GREEN=5, 
		BLUE=7  
	};

b.可以部分指定,未被初始化的枚舉值的值默認將比其前面的枚舉值大1

	enum color
	{
		RED=2,  
		GREEN,  //默認值是3,比前一個多1
		BLUE=7  
	};

c.可以重復(fù)指定

	enum color
	{
		RED=8,  
		GREEN=5, 
		BLUE=8  //重復(fù)指定
	};

3)指定枚舉類型?

C++11中,還可以指定給枚舉類型賦值的整數(shù)類型,在enum的名字后面加上冒號以及指定的類型,限定作用域枚舉默認為32位整形,在某些情況下,甚至沒必要用到32位,為了節(jié)省開銷,甚至可以用8位整形unsigned char,將類型指定成后,枚舉變量變成了8位整型,減少了內(nèi)存使用。不限定作用域的枚舉類型,其成員不存在默認類型,只需要知道潛在類型是足夠大的,肯定能容納枚舉值就行。

需要注意的是,不能指定為float或者double等類型,因為枚舉量必須是一個整數(shù),float和double都不是整數(shù)。

	enum color:unsigned long
	{
		RED=1,  
		GREEN=5, 
		BLUE=7  
	};

4)聲明枚舉對象

a.先聲明變量,再對變量賦值

#include <iostream>
using 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.聲明變量的同時賦初值

#include <iostream>
using 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.定義類型的同時聲明變量,然后對變量賦值

#include <iostream>
using 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.類型定義,變量聲明,賦初值同時進行

#include <iostream>
using 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)枚舉對象賦值問題

a.不能將非枚舉量賦給枚舉變量,能將枚舉量賦給非枚舉變量,因為枚舉量是符號常量,編譯器會自動把枚舉量轉(zhuǎn)換為int類型

int a;
a=RED;

b.枚舉變量不能進行算術(shù)運算,對于枚舉,只定義了賦值運算符,沒有為枚舉定義算術(shù)運算,錯誤的算數(shù)計算會導(dǎo)致范圍超限問題

RED++;  //錯誤
RED=GREEN+BLUE;  //錯誤

c.賦值超限問題

backColor = color(2); //等同于backColor = BLUE;
backColor = color(10);  //錯誤,超過color元素上限

6)枚舉的取值范圍

上限:需要知道枚舉量的最大值。找到大于這個最大值的、最小的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搭配使用文章來源地址http://www.zghlxwxcb.cn/news/detail-612052.html

enum color{RED, GREEN, BLUE};

color backColor=RED;

void SetColor(color color)
{
    backColor = color ;
}

if(backColor==RED)
{
    cout<<"color is RED"<<endl;
}
else if(backColor==GREEN)
{
    cout<<"color is GREEN"<<endl;
}
else if(backColor==BLUE)
{
    cout<<"color is BLUE"<<endl;
}
else
{
    cout<<"color is OTHER"<<endl;
}

到了這里,關(guān)于【C++】枚舉enum使用詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • C# 枚舉使用整理_C# enum詳解

    一、枚舉的定義 枚舉類型 是由基礎(chǔ) 整型數(shù)值類型 的一組命名常量定義的 值類型 。 System.Enum 類型是所有枚舉類型的抽象基類。 它提供多種方法來獲取有關(guān)枚舉類型及其值的信息。 有關(guān)更多信息和示例,請參閱 System.Enum API 參考頁。 可在基類約束中使用 System.Enum(稱為枚舉

    2024年02月16日
    瀏覽(18)
  • C#,入門教程(66)——枚舉Enum的高等用法

    C#,入門教程(66)——枚舉Enum的高等用法

    前言:國內(nèi)碼農(nóng)與國外優(yōu)秀程序員的最大區(qū)別是,我們的專家、教授喜歡唾沫橫飛地,夸夸其談?wù)Z言特性、框架、性能,唯一目的是帶私貨(書籍或教程),很少能寫出真有用的程序。差距在哪呢?基礎(chǔ)!基礎(chǔ)!基礎(chǔ)! 枚舉enum是常用的數(shù)據(jù)類型,有很多優(yōu)點。 枚舉使用過程

    2024年01月17日
    瀏覽(20)
  • C語言枚舉類型enum(全面詳細直觀)

    C語言枚舉類型enum(全面詳細直觀)

    維基百科的理解: 枚舉類型用于聲明一組命名的常數(shù),當(dāng)一個變量有幾種可能的取值時,可以將它定義為枚舉類型。 定義:是指將變量的值一一列出來,變量的值只限于列舉出來的值的范圍內(nèi)。 我的理解: 枚舉類型就是將一些比較固定的值一一列舉出來 ,比如一年有十二個

    2024年02月06日
    瀏覽(17)
  • 【golang】每日chatGPT:golang中實現(xiàn)ENUM枚舉類型 | go enum

    在golang極簡的哲學(xué)思想中,沒有內(nèi)置枚舉類型 這里我們通過map+iota去實現(xiàn)一個枚舉類型 枚舉值如下: key value 1 發(fā)電類 2 儲能類 13 負荷類 打印如下: 發(fā)電類 儲能類 負荷類 ========= 儲能類

    2024年02月15日
    瀏覽(20)
  • 自定義類型之枚舉類型(enum)和聯(lián)合體類型(union)

    目錄 ? 枚舉類型(enum) 什么是枚舉類型? 枚舉類型的使用 枚舉類型的優(yōu)勢 枚舉類型的應(yīng)用場景 總結(jié) 聯(lián)合體類型(union) 什么是聯(lián)合體? 聯(lián)合體的應(yīng)用場景 聯(lián)合體的注意事項 總結(jié) 枚舉類型是C語言中一種非常有用的數(shù)據(jù)類型,它允許程序員定義一組命名的常量。枚舉類型

    2024年02月20日
    瀏覽(24)
  • Rust 數(shù)據(jù)類型 之 類C枚舉 c-like enum

    Rust 數(shù)據(jù)類型 之 類C枚舉 c-like enum

    目錄 枚舉類型 enum 定義和聲明 例1:Color 枚舉 例2:Direction 枚舉 例3:Weekday 枚舉 類C枚舉 C-like 打印輸出 強制轉(zhuǎn)成整數(shù) 例1:Weekday 枚舉 例2:HttpStatus 枚舉 例3:Color 枚舉 模式匹配 match 表達式 枚舉方法 枚舉類型是一種用于表示一組有限數(shù)量相互關(guān)聯(lián)的離散型數(shù)據(jù),這些值可

    2024年02月16日
    瀏覽(20)
  • C語言中enum(枚舉)詳解

    enum 是 enumerate(列舉,枚舉)一詞的縮寫,是 C 語言中的一種 常量 ,被稱為 enumeration constant 。 enum 提供了一種很方便的方法來將值和名稱關(guān)聯(lián)起來,是 #define 的一種替代方法。 enum 可以看作是一種特殊的數(shù)組,是 常量組成的列表 ,而且這個常量只能是整數(shù)型。 所以如果是

    2024年02月13日
    瀏覽(24)
  • Java中枚舉類enum的values()方法的詳解

    Java中枚舉類enum的values()方法的詳解

    簡介: 枚舉中的一個特殊方法,values(), 在Enum 的 API 文檔中也找不到這個方法,當(dāng)點擊values()時,也會跳到本類上。 此方法可以理解為:將枚舉類轉(zhuǎn)變?yōu)橐粋€枚舉類型的數(shù)組,因為枚舉中沒有下標(biāo),我們沒有辦法通過下標(biāo)來快速找到需要的枚舉類,這時候,轉(zhuǎn)變?yōu)閿?shù)組之后,

    2024年02月14日
    瀏覽(18)
  • 表達式必須包含整數(shù)或枚舉類型 - Visual Studio C++ 錯誤

    在使用 Visual Studio C++ 進行編程時,有時你可能會遇到錯誤消息:“表達式必須包含整數(shù)或枚舉類型”。這個錯誤通常是由于在表達式中使用了錯誤的數(shù)據(jù)類型導(dǎo)致的。在本文中,我們將詳細解釋這個錯誤的原因,并提供一些可能的解決方案。 錯誤原因: 當(dāng)你在 C++ 程序中使

    2024年02月05日
    瀏覽(20)
  • Visual Studio 2010 C++編譯錯誤“表達式必須包含整數(shù)或枚舉類型“

    Visual Studio 2010 C++編譯錯誤\\\"表達式必須包含整數(shù)或枚舉類型\\\" 在使用Visual Studio 2010編寫C++代碼時,有時候會出現(xiàn)這樣的編譯錯誤:“表達式必須包含整數(shù)或枚舉類型”。這個錯誤通常是因為我們在寫代碼時使用了錯誤的數(shù)據(jù)類型或者運算符導(dǎo)致的。 下面我們來看一個例子: 在

    2024年02月08日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包