我有一个函数,旨在执行递归计算。如果我的函数是递归编程的,则计算时间太长。因此,我通过将中间结果存储在数组中来执行记忆。隐藏变量名称空间C++
我的程序的执行过程中,我可能会调用与参数(10,0)
,(5,5)
,(2,4)
等功能。因此我有一个setup(double x)
功能填充用正确的价值观,整个阵列。然后我可以访问任何数组值,而无需进一步计算。我只等到x
更改再次拨打setup()
。
我想知道如何能够在C++中实现这一点。使用一个类对我来说没有意义,因为我永远不需要创建关联的对象。我在名称空间中实现了很好的功能,但是我仍然遇到问题。即使我使用未命名的命名空间,我的函数使用的数组也是可见的,并且可以从函数的命名空间外部进行修改。如果我包含名称空间的头文件,那就是。
我的代码:
FunctionWrapper.h
namespace FunctionWrapper{
namespace{
double tempArray[10][10];
}
void setup(double x);
void getValues(int n);
}
Main.cpp的
#include "FunctionWrapper.h"
int main(){
FunctionWrapper::tempArray[0][0] = 5; //Works
}
“即使我使用了一个未命名的命名空间,我的函数使用的数组也是可见的,并且可以从该函数的命名空间之外进行修改。”这是不正确的。在您的程序的每个翻译单元中都可以看到具有相同名称的_different_数组,但函数使用的数组只能在包含您的函数的翻译单元中修改。头文件中的未命名名称空间(几乎?)永远不会有用。 – 2012-01-08 22:12:50