转自:http://yongshengfree.blog.163.com/blog/static/3525246520081023255997/
今天写程序的时候, 遇到这样一个错误, 网上找了一大堆资源, 都没能解决我的问题, 最后发现原来是我的头文件卫士声明写错了.
我把两个头文件写成一样的了, 都是Ctrl+C惹的祸呀, 还是自己太懒了. 像下面这样:
#ifndef AA
#define AA
....
#endif
不过在查阅网上资料的时候也意外的收获了一些答案, 在此把它贴出来, 以示警醒:
You can get the error
expected class-name before ‘{’ token
if you try to define a class as a subclass, and the superclass isn't defined in the local scope.
WRONG
class Foo: public Bar // Foo is a subclass of Bar { // stuff };
RIGHT
#include "Bar.h" // this makes Bar recognized class Foo: public Bar { // stuff };