申明全局變量,全局函數一定要在cpp中申明
其他類引用該全局變量就include該cpp的h文件
然後extern一下就好了
否則容易出現該重複定義錯誤
這個"容易"是如何解釋的呢?
例如A.h中如果申明瞭全局變量int Global;
在B.h中include "A.h"
extern int Global;
則你include A.h相當於把A.h中全局變量的申明也include進來了,編譯器就會認爲是重複定義
所以全局變量和函數申明一定要在cpp中
當.h文件裏有函數實現時
VS2005編譯器報錯誤 fatal error LNK1169: 找到一個或多個多重定義的符號
解決方法
1.在.h裏的函數聲明前加 inline
2.在項目->屬性->鏈接器->命令行->附加選項中加 /force
注: 之所以 在.h裏的函數聲明前加 inline 可以解決問題是因爲
內聯函數與普通函數的不同就是在於函數的定義部分的執行方式。內聯函數是在執行時直接將定義
部分的代碼複製過去執行,而普通的是進入到該函數定義部分執行,然後反還結果。前者速度快但
比較佔用內容,後面速度慢但省空間,因爲函數在執行完後所用的內存就會自動被系統收回。
不會被編輯器認爲是重複定義函數.