test.cpp:
#include"head.h"
int i=3;
main.cpp
#include"head.h"
#include
using namespace std;
extern int i;
int main(){
cout << i<< endl;
system("pause");
return 0;
}
head.h
#ifndef HEAD_H
#define HEAD_H
int ab = 0;
#endif
这个项目出现了重定义的问题,不知道为什么?求解答
为何要把ab的定义放在头文件呢?这样被不同的远函数包含就会出现重定义错误。解决办法,在头文件head中int ab=0;换成extern int ab;出现这种错误是对申明和定义理解不够深,要深刻加以区别。
是被不同的源文件包含。
#ifndef HEAD_H
#define HEAD_H
int ab = 0;
#else
extern int abc;
#endif
好的,知道了,谢了