关于“ 以前的定义是“枚举数” ”问题的解决办法
来源:互联网 发布:ccn是什么网络 编辑:程序博客网 时间:2024/05/02 00:41
相信在学习C++的过程中,很多人都遇到过 名字空间 (namespace)这个名词,其实说简单一点,名字空间就是将各种名称封装在不同的包里面,以免命名重复。
其解决的最主要的问题就是命名重复。好了,既然说到这里,相信也知道该如何解决这个问题了。现举例如下:
namespace OCC{enum Occupation{ administrator = 0,artist = 1,doctor = 2,educator = 3,engineer = 4,entertainment = 5,executive = 6,healthcare = 7,homemaker = 8,lawyer = 9,librarian = 10,marketing = 11,none = 12,other = 13,};}namespace GEN {enum Gender{male = 0,female = 1,other = 2};}
以上两个枚举中,都存在other,如果放在同一命名空间中会存在 重定义问题 ,现在将其放在两个空间中,就可以解决命名重复问题,但需要注意调用的方法。调用如下:
调用方法一:
using namespace OCC;using namespace GEN;int a = Occupation::other;int b = Gender::other;
调用方法二:
int a = OCC::Occupation::other;int b = GEN::Gender::other;
调用方法三:
也可以直接忽略enum的命名,而将两个枚举类型定义为 未命名枚举 ,同时将 命名空间 的名字改为原枚举类型的名称,举例如下:
namespace Occupation{enum { administrator = 0,artist = 1,doctor = 2,educator = 3,engineer = 4,entertainment = 5,executive = 6,healthcare = 7,homemaker = 8,lawyer = 9,librarian = 10,marketing = 11,none = 12,other = 13,};}namespace Gender {enum {male = 0,female = 1,other = 2};}int a = Occupation::other;int b = Gender::other;
额外:如果在同一命名空间时,即使如下使用,仍会出现 重定义问题:
int a = Occupation::other;int b = Gender::other;
- 关于“ 以前的定义是“枚举数” ”问题的解决办法
- 关于SetupDiEnumDeviceInfo枚举设备返回false问题的解决办法
- error C2365: “operator new”: 重定义;以前的定义是“函数”
- 动态链接库 C2365: “operator new”: 重定义;以前的定义是“函数”
- error C2365: “operator new”: 重定义;以前的定义是“函数”
- 如何解决“error C2365: “huidu”: 重定义;以前的定义是“数据变量””
- 数独问题的解决办法
- 以前遇到的问题
- 关于数的问题
- 关于winsock2.h的重定义解决办法
- 关于以前的应用程序settimer以及现在RTC棘手问题
- 以前遗留下的一个问题(关于手机解锁)
- 枚举类型的定义
- 枚举类型的定义
- 枚举变量的定义
- 关于重复定义的问题
- 关于Donews的记忆---以前
- 关于以前的简单总结
- Linux桌面管理工具
- C++基础学习系列第一部分——数组和指针
- java中的URLEncoder和URLDecoder类
- 高斯日记
- NoSql-MongoDB和Cassandra
- 关于“ 以前的定义是“枚举数” ”问题的解决办法
- Navigation Drawer(导航抽屉)模式
- 数据结构线性表的基本函数
- hdu oj 2000
- 编程小白的记录之路
- 多线程快速抓取网页
- 机房收费系统的上下机
- 不是技术牛人,如何拿到国内IT巨头的Offer
- 软件项目开发模板(邮件接收器)