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;出現這種錯誤是對申明和定義理解不夠深,要深刻加以區別。