簡體   English   中英

是否應從頭文件聲明中排除輔助函數? (C ++)

[英]Should helper functions be excluded from header file declarations? (C++)

是否應該從頭文件聲明中排除僅在實現文件中使用的輔助函數?

通過輔助函數,我指的是與類緊密關聯的便捷函數,但不表示對類的操作,不需要訪問成員變量,因此不是方法。

一方面,將它們包含在頭文件中使得頭文件成為相應c ++實現的綜合參考。 另一方面,它引入了一段代碼來保持一致性。 更重要的是,包括輔助函數會鼓勵輕微違反抽象層,因為函數並不意味着在其他環境中運行,盡管不是以嚴格的方式運行,因為不存在破壞類狀態的風險,只要輔助函數本身並沒有破壞它所使用的類的封裝。

一方面,將它們包含在頭文件中使得頭文件成為相應c ++實現的綜合參考。

這不是頭文件的目的。 頭文件應該是接口的引用,而不是實現 有些實現細節有時會泄漏,但應盡可能避免這種情況。

所以回答你的標題問題:是的。

如果它們在實現的一部分中使用,則只應從主頭文件中排除它們。 但是,如果您希望測試這些函數,則需要將對它們的引用添加到單獨的頭文件中。

如果它們在實現的多個部分中使用,則它們將屬於它們自己的內部頭文件,以便可以共享它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM