我有一个执行计算的功能,我希望能够从我的程序中的任何位置调用此函数。我知道在Java中,我会在类中创建一个public static
方法。C++中的辅助方法及其可见性
到目前为止,在C++中,我创建了一个用于我的特殊功能的namespace
。我遇到的问题是这个函数使用它自己的帮助函数。我希望这些较低级别的功能不可见(即私人),但我不确定如何去做。
到目前为止,我有这样的代码:
namespace HelperCalc{
int factorial(int n){
return n <= 1 ? 1 : n*factorial(n-1);
}
double getProbability(int x, int y){
.....//do maths
.... = factorial(x);
}
}
因此,例如,我会到能够调用getProbability()
,但我想“隐藏” factorial()
。
辉煌,这是我需要的。 – rogerDorsey 2012-01-06 22:06:15
只是问......这是否比在源文件中定义函数更好,没有名称空间? – 2012-01-06 22:15:24
是的,因为如果你声明它们没有匿名命名空间,只要它们声明了这个函数,它们仍然可以被其他翻译单元/源文件访问。其他翻译单元不能访问匿名命名空间中的函数。 – 2012-01-06 22:18:17