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

时间:2013-01-18 09:13:23

标签: c++

是否仍然值得在C ++中使用静态函数作为助手?

实施例: 在file.cpp中

static void helperFunc() { do something }

// class implementation
// ...

// some public method, not static
void myClass::doSomething() { helperFunc(); }

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

或者最好使用未命名的命名空间并写入(在上面的同一文件中)?

namespace {
    void helperFunc() { }
}

什么更好?

2 个答案:

答案 0 :(得分:2)

你的两个例子都不比另一个好。这是一种风格问题。 static关键字更具表现力。它直接说出“不要导出这个名字”。使用匿名命名空间并不具有表现力。名称不会被导出的事实是副作用,而不是主要功能。

答案 1 :(得分:-2)

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