在C++中对类的助手使用静态函数

Using static function for classes' helpers in C++

本文关键字:静态函数 C++      更新时间:2023-10-16

在c++中使用静态函数作为帮助器是否仍然值得?

的例子:在file.cpp

static void helperFunc() { do something }
// class implementation
// ...
// some public method, not static
void myClass::doSomething() { helperFunc(); }

这样我就不必在类的声明中声明私有方法了。

或者使用未命名的名称空间并写入(与上面相同的文件中)更好?

namespace {
    void helperFunc() { }
}

哪个更好?

你的两个例子没有一个比另一个好。这是风格的问题。关键词static更具表现力。它直接拼出了"不要输出这个名字"。使用匿名名称空间并不是那么有表现力。不能导出名称是一个副作用,而不是主要功能。

最好在类中声明一个私有(可能是静态的)方法