壹:h與cpp的區別:
其實沒有什麽區別 妳完全可以include cpp文件,只是編譯器只編譯cpp的文件 對於h文件 編譯器不管的
因此為了避免重復定義,習慣上把h文件用來聲明變量 與類的成員的聲明,cpp文件用來定義相關變量函數
二:ifndef...define...endif的作用:
在h文件中,很有可能壹個h頭文件會被包含很多次,因此壹個變量往往會被多次的聲明,為了避免這個問題,
在h頭文件加上:
#ifndef 任意合法字符(為了便於管理,以免重復,盡量與文件名相似)
#define 與ifndef的字符完全壹樣
....
...
...
..
#endif
所以建議妳,在每個h頭文件開始都加上#ifndef....define.. 結尾加上#endif
只有好處沒有壞處
三:extern的作用:
起著全局的作用 如果妳定義某個變量在整個項目中都能夠使用,請在總的h文件中寫上extern,
extern 變量聲明,此時並沒有真正聲明該變量,只是告訴編譯器這個變量整個項目都能使用,所以以後還要重新聲明定義
不過extern主要用於有幾十或者上百個文件的操作 像妳這只有5個文件的工程根本不需要extern
所以
只要在每個頭文件開始結尾都加上了ifndef define endif 那妳什麽都不用擔心 要什麽變量 就include有那個變量聲明的文件
對於妳的要求 只需要
在m.cpp中#include "b.h"
在b.h中include"a.h"
在a.cpp中include "a.h"
在b.cpp中include"b.h"
OK了