C++ 解决enum redeclaration的冲突
生活随笔
收集整理的這篇文章主要介紹了
C++ 解决enum redeclaration的冲突
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么80%的碼農都做不了架構師?>>> ??
【問題】如果聲明了兩個不同的enum,但enum中的元素一樣,在編譯時就會報錯enum redeclaration
enum Identity {UNKNOWN = 1,CHECKED = 2,UNCHECKED = 3 };enum Status {UNKNOWN = 0,PENDING = 1,APPROVED = 2,UNAPPROVED = 3 };【解決】
如果是C++11,則可以考慮將enum聲明改為enum class聲明,具體如下:
enum class Identity {UNKNOWN = 1,CHECKED = 2,UNCHECKED =3 };enum class Status {UNKNOWN = 0,PENDING = 1,APPROVED = 2,UNAPPROVED =3 };int main () {Identity::UNKNOWN;Status::UNKNOW; }如果不是C++11,則可以考慮用下面的方法:
struct Identities {enum Type{UNKNOWN = 1,CHECKED = 2,UNCHECKED = 3}; };typedef Identities::Type Identity;struct States {enum Type{UNKNOWN = 0,PENDING = 1,APPROVED = 2,UNAPPROVED = 3}; };typedef States::Type Status;// usage Identity identity = Identities::UNKNOWN; Status status = States::UNKNOWN;?
轉載于:https://my.oschina.net/shou1156226/blog/1204654
總結
以上是生活随笔為你收集整理的C++ 解决enum redeclaration的冲突的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10 大方法,让您的客服中心提供更出色的
- 下一篇: C++重载指针引用