<分区>
我需要编写一个将在类方法中使用的辅助函数。目标是一个静态库。我知道以下用法:
- 它不会使用这个类的成员
- 不会在其他类中使用
我看到了两种通用的解决方法:
- 定义一个带有静态方法的辅助类并使用它
- 在cpp文件中将其定义为
static
函数
在第一种情况下(据我所知)这些函数将在库符号列表中可见。在第二种情况下,它们将不可见,但这似乎不是一个好习惯。我应该选择哪种方式?
标签 c++ architecture
<分区>
我需要编写一个将在类方法中使用的辅助函数。目标是一个静态库。我知道以下用法:
我看到了两种通用的解决方法:
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++ - std::bind 是否应该与 boost::asio 兼容?