c++17(2)-枚举类enum class
生活随笔
收集整理的這篇文章主要介紹了
c++17(2)-枚举类enum class
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
enum class Enumeration{ Val1, Val2, Val3 = 100, Val4 /* = 101 */,};
此種枚舉為類型安全的。枚舉類型不能隱式地轉(zhuǎn)換為整數(shù);也無(wú)法與整數(shù)數(shù)值做比較。
#include <iostream> using namespace std ; int main(int argc, char **argv) {enum class Status {RUN,ERROR,FINISHED,START,STOP};Status proStatus1 {Status::START};Status ProStatus2{Status::ERROR};Status nowStatus;nowStatus=Status::STOP;for (int i=0;i<2;i++){if (nowStatus==Status::STOP){nowStatus=Status::START;} else if(nowStatus==Status::START){nowStatus=Status::RUN;} }cout<<(long)nowStatus;return 0; }輸出 0
#include <iostream> using namespace std ; int main(int argc, char **argv) {enum class Status {RUN=10,ERROR,FINISHED,START,STOP};Status proStatus1 {Status::START};Status ProStatus2{Status::ERROR};Status nowStatus;nowStatus=Status::STOP;for (int i=0;i<3;i++){if (nowStatus==Status::STOP){nowStatus=Status::START;} else if(nowStatus==Status::START){nowStatus=Status::RUN;} else if(nowStatus==Status::RUN){nowStatus=Status::FINISHED;} }cout<<(long)nowStatus;return 0; }輸出12
#include <iostream> using namespace std ; int main(int argc, char **argv) {enum class Status:long {RUN=10,ERROR,FINISHED,START,STOP};Status proStatus1 {Status::START};Status ProStatus2{Status::ERROR};Status nowStatus;nowStatus=Status::STOP;for (int i=0;i<3;i++){if (nowStatus==Status::STOP){nowStatus=Status::START;} else if(nowStatus==Status::START){nowStatus=Status::RUN;} else if(nowStatus==Status::RUN){nowStatus=Status::FINISHED;} }cout<<(long)nowStatus<<endl;cout<<static_cast<long>(nowStatus)<<endl;return 0; }輸出12
總結(jié)
以上是生活随笔為你收集整理的c++17(2)-枚举类enum class的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: unity随笔(1)-材质、对象
- 下一篇: 使用jackson对Java对象与JSO