是否应在头文件声明中排除仅在实现文件中使用的辅助函数?
辅助函数我指的是一个与类紧密相关的便捷函数,但不表示对类的操作,不需要访问成员变量,因此不是方法。
一方面,将它们包含在头文件中使得头文件成为相应c ++实现的综合参考。另一方面,它引入了一段代码来保持一致性。更重要的是,包括辅助函数会鼓励轻微违反抽象层,因为函数并不意味着在其他环境中运行,尽管不是以严格的方式运行,因为不存在破坏类状态的风险,只要辅助函数本身并没有破坏它所使用的类的封装。
答案 0 :(得分:9)
一方面,将它们包含在头文件中会使头文件成为相应c ++实现的全面参考。
这不是头文件的目的。头文件应该是接口的引用,而不是实现。有些实现细节有时会漏掉,但应尽可能避免这种情况。
回答你的标题问题:是的。
答案 1 :(得分:0)
如果它们在实现的一部分中使用,则只应从主头文件中排除它们。但是,如果您希望测试这些函数,则需要将对它们的引用添加到单独的头文件中。
如果它们在实现的多个部分中使用,它们将属于它们自己的内部头文件,以便它们可以共享。