是否仍然值得在C ++中使用静态函数作为助手?
实施例: 在file.cpp中
static void helperFunc() { do something }
// class implementation
// ...
// some public method, not static
void myClass::doSomething() { helperFunc(); }
这样我就不必在类的声明中声明私有方法。
或者最好使用未命名的命名空间并写入(在上面的同一文件中)?
namespace {
void helperFunc() { }
}
什么更好?
答案 0 :(得分:2)
你的两个例子都不比另一个好。这是一种风格问题。 static
关键字更具表现力。它直接说出“不要导出这个名字”。使用匿名命名空间并不具有表现力。名称不会被导出的事实是副作用,而不是主要功能。
答案 1 :(得分:-2)
最好在类中声明一个私有(可能是静态的)方法。