c++ - 是否允许在对象之外定义辅助函数?

标签 c++ coding-style

我有一个类和一个给定的非常复杂的方法,为此我定义了一些辅助函数,但是这些函数在其他任何地方都没有使用。现在我在想我是否应该

  • 将它们添加到我的类中——这似乎是根据 OOP 范式应该做的事情
  • 将它们放在外面,即单独放在我的实现文件中 - 因为用那种半冗余方法填充我的类定义会使我的类定义的可读性降低。

我的问题是当涉及到C++风格时我应该怎么做。我觉得第二种解决方案违背了 OOP 原则,尽管 C++ 不是一种面向对象的语言,而是一种混合语言。我提到的函数,如果作为类方法实现,将是静态的。

最佳答案

将它们放在 Unnamed namespace 在您的源文件中。
未命名的命名空间允许您的函数在翻译单元内可见,但在翻译单元外不可见。你的函数仍然有一个外部链接,但它们对翻译单元之外的任何人来说都是不可见的。

关于c++ - 是否允许在对象之外定义辅助函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14482705/

相关文章:

c++ - 基本嵌套循环计算 1 - 239(含)之间的素数

c++ - 从使用 emscripten 编译的 C++ 连接 websocket 时出现问题

python - 分隔字符串的最佳 ASCII 字符是什么?

c++ - 运算符优先级

c++ - 内存泄漏检测

javascript - clickHandler 或handleClick 或onClick 或signUp 或handleSignUp 或signUpHandler?

c# - 如何用c#语言编写干净的代码并提高代码质量

java - 在大型 if/else 结构中调用函数/类的好方法

Javascript 文件写覆盖页面?

delphi - 什么是更好的选择?