昨天在写积分器控制程序的时候,类里面定义了一个枚举类型,编译的时候出现了上述错误,造成错误的原因是在这个枚举类型前面有static修饰符,如下:
static enum cmd{IntHelp,IntDelayCharge,IntDelayDisCharge,IntStandard,IntPulse};
去掉前面的static编译通过。
对于这个错误,顾名思义,就是"storage class"的修饰符用在了对象或者变量(objects)和函数(functions)外的其他地方。
在C/C++规范中,定义了四种storage class的修饰符。
很显然,是这个"static"用的地方不对。查找了好多C++书籍和比较权威的解释,都指出这个"static"只能用于object和function。这个static用于修饰class的storage,很明显是错误的。去掉这个static,编译通过。
参见博客http://blog.csdn.net/weibin_168/article/details/6669736