您的位置:首页 > 移动开发 > Objective-C

C++编译错误"a storage class can only be specified for objects and functions"解决方法

2014-03-05 08:54 2086 查看
昨天在写积分器控制程序的时候,类里面定义了一个枚举类型,编译的时候出现了上述错误,造成错误的原因是在这个枚举类型前面有static修饰符,如下:

static enum cmd{IntHelp,IntDelayCharge,IntDelayDisCharge,IntStandard,IntPulse};

去掉前面的static编译通过。

对于这个错误,顾名思义,就是"storage class"的修饰符用在了对象或者变量(objects)和函数(functions)外的其他地方。

在C/C++规范中,定义了四种storage class的修饰符。

auto
register
static
extern

很显然,是这个"static"用的地方不对。查找了好多C++书籍和比较权威的解释,都指出这个"static"只能用于object和function。这个static用于修饰class的storage,很明显是错误的。去掉这个static,编译通过。

参见博客http://blog.csdn.net/weibin_168/article/details/6669736
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐