【问题标题】:Should helper functions be excluded from header file declarations? (C++)是否应该从头文件声明中排除辅助函数? (C++)
【发布时间】:2012-07-16 01:14:46
【问题描述】:

是否应该从头文件声明中排除仅在实现文件中使用的辅助函数?

我所说的辅助函数是指与类密切相关的便利函数,但不代表对类的操作,不需要访问成员变量,因此不是方法。

一方面,将它们包含在头文件中使头文件成为相应c++实现的综合参考。另一方面,它又引入了一段代码来维护一致性。更重要的是,包含辅助函数会鼓励对抽象层的轻微违反,因为该函数并不意味着在其他上下文中运行,尽管不是以严重的方式,因为只要不存在破坏类状态的风险辅助函数本身并没有破坏它所使用的类的封装。

【问题讨论】:

    标签: c++ coding-style


    【解决方案1】:

    一方面,将它们包含在头文件中使头文件成为相应c++实现的综合参考。

    这不是头文件的目的。头文件应该是接口的引用,而不是实现。一些实现细节有时会泄漏,但应尽可能避免。

    所以回答你的标题问题:是的。

    【讨论】:

      【解决方案2】:

      如果它们仅用于实现的一部分,则应将它们从主头文件中排除。但是,如果您想测试这些功能,您需要将它们的引用添加到单独的头文件中。

      如果它们在实现的多个部分中使用,它们将属于自己的内部头文件,以便可以共享。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-22
        相关资源
        最近更新 更多