请教个枚举的问题

warsong 2010-05-17 03:43:26
众所周知,如果两个不同名的枚举类型包含同名的内容就会出错。比如:
enum ePC_1
{
PC_HOST = 0x01,
PC_TMS = 0x03,
};

enum ePC_2
{
PC_HOST = 0x01,
};
但如果是名称空间就不会出错。比如:
namespace nPC_1
{
const int PC_HOST = 0x01;
const int PC_TMS = 0x03;
}

namespace nPC_2
{
const int PC_HOST = 0x01;
}
而且类、结构也与名称空间类似。。。。所以我想问:为什么枚举的语法那么奇怪?为什么不能修改得跟类、结构和名称空间类似(这样可以减轻学习难度和记忆难度)??
...全文
100 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
warsong 2010-05-18
  • 打赏
  • 举报
回复
。。。明白了,5楼朋友的想法很不错!
selooloo 2010-05-17
  • 打赏
  • 举报
回复
因为枚举相当于定义const常量,与类和结构体有本质的不同;PC_HOST 就相当于一个常量名;名字相同当然会冲突,想让它表现的和类一样,就把它定义到类里面去
wuhuwy 2010-05-17
  • 打赏
  • 举报
回复
潜规则,楼主就别问为什了
呵呵,你也可以把不同的枚举放到不同的命名空间啊,为什么还需要给枚举加上命名空间这个属性?
RHuniSoft 2010-05-17
  • 打赏
  • 举报
回复
乌龟的屁股~~~哈哈,规定规定,不过枚举现在不常用了,不用细细的研究了,今后能用枚举的问题会有更好的方法解决
向立天 2010-05-17
  • 打赏
  • 举报
回复
枚举和类和名字空间的原理是不同的
枚举相当于替换
本身没有封装
  • 打赏
  • 举报
回复
难道导演安排????
tan870426 2010-05-17
  • 打赏
  • 举报
回复
这个是乌龟的屁股~
规定!
没啥为什么

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧