我有一个类和一个给定的非常复杂的方法,为此我定义了一些辅助函数,但是这些函数在其他任何地方都没有使用。现在我在想我是否应该
- 将它们添加到我的类中——这似乎是根据 OOP 范式应该做的事情
- 将它们放在外面,即单独放在我的实现文件中 - 因为用那种半冗余方法填充我的类定义会使我的类定义的可读性降低。
我的问题是当涉及到C++风格时我应该怎么做。我觉得第二种解决方案违背了 OOP 原则,尽管 C++ 不是一种面向对象的语言,而是一种混合语言。我提到的函数,如果作为类方法实现,将是静态的。
最佳答案
将它们放在 Unnamed namespace 中 在您的源文件中。
未命名的命名空间允许您的函数在翻译单元内可见,但在翻译单元外不可见。你的函数仍然有一个外部链接,但它们对翻译单元之外的任何人来说都是不可见的。
关于c++ - 是否允许在对象之外定义辅助函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14482705/