我正在为学校作业实施离散傅里叶变换,我创建了一个构造转换矩阵的DFT
类。出于某种原因,当我在DFT
中实例化main()
对象时,一切正常,但如果使用未命名的命名空间,则矩阵构造不正确。
使用:
int main()
{
DFT matrix(size);
...
matrix.Transform(data);
...
}
不起作用:
namespace
{
DFT matrix(size);
}
int main()
{
...
matrix.Transform(data);
...
}
编译器错误,还是我错误地记述了未命名的命名空间是如何工作的?
答案 0 :(得分:0)
只是猜测:
namespace
{
DFT matrix(size);
}
从哪里获得size
?请记住,这将在运行main
之前构建。
答案 1 :(得分:0)
这里的问题是你实际上无法从未命名的命名空间中调用构造函数,所以...
namespace {
DFT matrix(size);
}
实际上是在声明一个功能。另一方面,
namespace {
DFT matrix;
}
会工作,但会使用零初始值设定项。