c++ - 辅助函数 : static in cpp or define as static helper class method

标签 c++ architecture

<分区>

我需要编写一个将在类方法中使用的辅助函数。目标是一个静态库。我知道以下用法:

  • 它不会使用这个类的成员
  • 不会在其他类中使用

我看到了两种通用的解决方法:

  1. 定义一个带有静态方法的辅助类并使用它
  2. 在cpp文件中将其定义为static函数

在第一种情况下(据我所知)这些函数将在库符号列表中可见。在第二种情况下,它们将不可见,但这似乎不是一个好习惯。我应该选择哪种方式?

最佳答案

“具有静态方法的辅助类”是一种 Java 主义,在 C++ 中没有立足之地。
文件范围内的静态函数是 C 主义。

您应该选择的现代 C++ 解决方案(只有几十年的历史)是匿名命名空间中的自由函数:

namespace
{
    void helperfunction() {}
}

void Class::function()
{
    helperfunction();
}

关于c++ - 辅助函数 : static in cpp or define as static helper class method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34136057/

相关文章:

c++ - 为什么结构体的 sizeof 不等于每个成员的 sizeof 之和?

.net - 在 C# P/Invoke 中编码(marshal) C++ "string"类

c++ - 有什么方法可以在gdb中设置以调用堆栈为条件的断点吗?

php - 何时在 Zend Framework 中使用模块?

architecture - Docker:为一个应用程序暂存多个容器

asp.net-mvc - "inheriting"来自通用模板应用程序的 ASP.NET MVC 站点? ( Multi-Tenancy )

c++ - SFML 窗口不出现

c++ - std::bind 是否应该与 boost::asio 兼容?

c++ - 如何在没有现有引擎的情况下在游戏中设计我的 EventTrigger 框架?

javascript - 如何减少 Angular 应用程序构建时间?