在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
对于这个错误,顾名思义,就是"storage class"的修饰符用在了对象或者变量(objects)和函数(functions)外的其他地方。 在C/C++规范中,定义了四种storage class的修饰符。
我所遇到的这个编译错误所对应的代码是下面所示。 class CDataSet{ public: static enum ePrintRange { ALLDATA = 0, ...... } ...... } (本人在学习STL,从互联网上找来一些例子学习,本人在编译某个例子的过程中遇到这个问题) 很显然,是这个"static"用的地方不对。查找了好多C++书籍和比较权威的解释,都指出这个"static"只能用于object和function。这个static用于修饰class的storage,很明显是错误的。去掉这个static,编译通过。 在Java中确实支持在某个类中定义一个内部static类,而Java的大部分语法的语义与C++比较接近,也许写这个例子的牛人想当然的认为C++中应该也有内部static类。 说句题外话,从网上看到C++的例子后,如果觉得有疑惑的话,就不妨编译一下,总有收获的:或者加深了对原来知识的理解,或者学到了新的技术。 还有在使用extern class a;的时候也会出现这样的提示。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论