C++枚举中的的“redefinition; different type modifiers”
来源:互联网 发布:手机淘宝口令 编辑:程序博客网 时间:2024/06/07 03:29
最近看《C++Primer》(电子书,第四版的)。话说看到疑问的地方自己编代码尝试,可是今天还就真被代码搞懵了。笔者运行环境XP+vc6.0。那么看到哪了呢?在《3.8枚举类型》,应该是91页。内容为:
打开一个文件可能有三种状态:input, output和append. 典型做法是,对应定义3个常数,即:
然后,调用以下函数:
比如,
const int _i=0;const int _o=1;const int _a=3;enum Open_Mode{_i=0,_o,_a}; <span style="white-space:pre"></span>
void main(){int om = _o;cout<<_i<<" "<<om<<endl;}
暂且原谅笔者是个懒鬼,偷了一些懒,结果一运行,就报错了redefinition; different type modifiers。重定义。我盯着这个错最少看了5分钟。后来才想到枚举变量里面的值是现用现定义的。什么意思 enum Open_Mode{_i=0,_o,_a},这里面的_i等等属性都是现用现定义的,枚举变量申明前,它里面的属性是不用先定义的,我们用const int _i=0;这里_i定义了一次,然后在enum Open_Mode{_i=0,_o,_a};_i,_o,_a又重新定义了,而且_i已经被const声明了,这时候编译检查发现前面已经定义了一个同名变量,这就是系统报重定义的错的原因。也就是说前面的3个const变量的定义都不要。就留最后enum的定义就OK了。顺便说一下,我们这里面只给_i赋值了,那么其他的呢?它们的值你想过吗?笔者透露一下,_o是在前面的值得基础上加1了。不知道的,赶紧去看看吧。
0 0
- C++枚举中的的“redefinition; different type modifiers”
- error C2373: redefinition different type modifiers
- 2014-04-03第14周周四工作日志:error C2373: 'CreateUserProfile' : redefinition; different type modifiers
- c语言redefinition; different basic types错误
- C/C++的redefinition
- C语言error C2371: '****' : redefinition; different basic types
- error C2371: redefinition; different basic types一种情况的解决方法
- c/c++ redefinition的解决方法
- Redefinition of ‘*** with a different type: ‘CGFloat’ (aka ‘double’) vs ‘float’错误
- 'point' 'class' type redefinition
- class type redefinition
- 'struct' type redefinition
- 关于"class type redefinition"
- error C2011: 'fd_set' : 'struct' type redefinition的解决方法
- 解决error C2011: 'fd_set' : 'struct' type redefinition的方法
- error C2011: 'fd_set' : 'struct' type redefinition 的原因(转)
- 解决error C2011: 'fd_set' : 'struct' type redefinition的方法
- 解决error C2011: 'fd_set' : 'struct' type redefinition的方法
- linux 基本操作学习1
- TCP socket如何判断连接断开
- 使用VS2010构建CEGUI0.8.3
- JSON转换总是日期总是变成当前系统时间分析
- 表驱动方法
- C++枚举中的的“redefinition; different type modifiers”
- Linux平台PThreads库多线程编程笔记汇总
- Leetcode_combinations
- java多线程详细
- ActivityGroup简介
- nginx httpd apache对比
- 黑马程序员- html内容
- fill和memset的区别
- LeetCode之Path Sum