隐袭战龙 发表于 2014-7-18 20:03:37

为什么extern自定义的class变量会报错?

本帖最后由 隐袭战龙 于 2014-7-18 22:22 编辑

在ExternVariable.h中有如下代码:#include "Myclass.h"
extern Myclass myclass;在Myclass.h中的代码:
class Myclass
{

};
这是PublicVariable.cpp的代码:
Myclass myclass;
这是main.cpp的代码:
#include "ExternVariable.h"
int main()
{
    myclass.func();
    return 0;
}
为什么编译器报错?
错误内容:
1>f:\test\ExternVariable.h(1): error C2146: 语法错误: 缺少“;”(在标识符“myclass”的前面)
1>f:\test\ExternVariable.h(1): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>f:\test\ExternVariable.h(1): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

如果不要extern,则提示找不到表示符myclass(不是找不到定义)

求帮助,谢谢



页: [1]
查看完整版本: 为什么extern自定义的class变量会报错?