c++標頭檔案包括了函式的宣告.以及在標頭檔案中實現了函式的定義.
那麼這個標頭檔案.在別的地方只能被#include一次。
如果在其他的地方 至少兩次 #include這個標頭檔案.那麼就會出現函式多重定義的問題.
c++在編譯標頭檔案的時候.已經找到了該函式的宣告 和它的定義.
再次呼叫標頭檔案的時候。出現兩個定義。而編譯器不知道該選擇哪個定義。所以會出現錯誤.
#ifndef test_one_h
#define test_one_h
#include
class testone ;
void testone::speak()
testone::testone()
testone::~testone()
#endif // ! test_one_h
這是乙個testone的標頭檔案.我要在test.cpp中呼叫他的函式.
#include
#include "testone.h" --------------->在這裡包含了它的標頭檔案
int main()
下面在testone.cpp檔案中 包含它的標頭檔案
#include"testone.h"
那麼結果就是 testone.cpp 和 test.cpp中包含了共同的標頭檔案.那麼就會編譯錯誤
找到乙個或多個多重定義的符號:
這個時候去掉乙個就行了.
建議還是標頭檔案填寫函式宣告.而函式實現放在cpp檔案中.
C 標頭檔案包含變數時,多重定義問題!
multiple definition of 在標頭檔案中.h中包含有變數定義的時候,一般是想作為全域性變數來使用,但是使用中總是出現multiple definition of的問題,看一下 oracleinfclass.h ifndef oracleinfclass h define oracl...
C Primer 符號的多重定義問題
和 這樣的符號,既能用作表示式裡的運算子,也能作為宣告的一部分出現,符號的上下文決定了符號的意義 int i 42 int r i 緊隨型別名出現,因此是宣告的一部分,r是乙個引用 int p 緊隨型別名出現,因此是宣告的一部分,p是乙個指標p p i 出現在表示式中,是乙個取位址符 p i 出現在...
筆記 變數多重定義的問題
1.在乙個.h檔案中定義了乙個變數 或函式 該.h檔案又被其他檔案所包含,鏈結時就會產生該變數 或函式 多重定義的錯誤。2.把 變數 函式宣告 放在.h,而把 變數 函式定義 放在.c。函式的宣告和定義很好區分,但是變數的宣告和定義 尤其在不帶初始化的情況下,如int a 長的一模一樣。解決方法 e...