[英]Should helper functions be excluded from header file declarations? (C++)
是否應該從頭文件聲明中排除僅在實現文件中使用的輔助函數?
通過輔助函數,我指的是與類緊密關聯的便捷函數,但不表示對類的操作,不需要訪問成員變量,因此不是方法。
一方面,將它們包含在頭文件中使得頭文件成為相應c ++實現的綜合參考。 另一方面,它引入了一段代碼來保持一致性。 更重要的是,包括輔助函數會鼓勵輕微違反抽象層,因為函數並不意味着在其他環境中運行,盡管不是以嚴格的方式運行,因為不存在破壞類狀態的風險,只要輔助函數本身並沒有破壞它所使用的類的封裝。
一方面,將它們包含在頭文件中使得頭文件成為相應c ++實現的綜合參考。
這不是頭文件的目的。 頭文件應該是接口的引用,而不是實現 。 有些實現細節有時會泄漏,但應盡可能避免這種情況。
所以回答你的標題問題:是的。
如果它們在實現的一部分中使用,則只應從主頭文件中排除它們。 但是,如果您希望測試這些函數,則需要將對它們的引用添加到單獨的頭文件中。
如果它們在實現的多個部分中使用,則它們將屬於它們自己的內部頭文件,以便可以共享它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.