尽管你已经使用了
#ifndef _A
#define _A
class A
{
public:
void Print(char* text);
};
int i;
#endif
但还是出现这样的错误!!!!
Linking...
print1.obj : error LNK2005: "int i" (?i@@3HA) already defined in main.obj
print1.obj : error LNK2005: "int i" (?i@@3HA) already defined in main.obj
Debug/abc.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
主要是你没有搞清楚一个问题, redeclare & redefine
#ifndef #define #endif 只能防止 redeclare,
若多次引用 此头文件, int i 不是被定义了多次吗, 肯定出错啊!
所以我们在被多次引用的头文件里面使用全局变量一定要加 extern
extern int i;
不要再搞错了!
阅读(1461) | 评论(2) | 转发(0) |