必須誠實地說,我在頭文件中的函數(有時是數據成員)聲明中的關鍵字之間產生混淆,實施文件。關鍵字包含在頭文件vs源/實現文件中的C++「規則」
遵循什麼規則?例如
(每評論更新)
- 頭文件不包含除如果函數聲明爲「內聯」
- 數據成員不包含默認值,除非執行如果類型是靜態的,const,int/enum(除非C++ 11)
- 公共/私有/受保護通常出現在頭文件中
- 「靜態」通常出現在頭文件中,而不是實現文件。
我可以使用其他規則嗎?常量?
繼承問題呢?我認爲「虛擬」只能在頭文件中進行?如果我從A類繼承了虛擬函數到B類,B類的頭文件是否必須聲明它覆蓋的虛函數?如果我在類A中重寫純虛函數,那麼我必須將純虛函數定義包含在派生類的頭文件中?
過分寬泛的這一個,你的第3和第4的規則是錯誤的。將其細分爲具體細節。 – 2013-03-01 13:12:05
如果頭文件是一個模板函數,它還應該包含一個函數實現。 – 2013-03-01 13:12:29
沒有*有*標記。 – juanchopanza 2013-03-01 13:12:53