-3

学校の課題で離散フーリエ変換を実装しておりDFT、変換行列を構築するクラスを作成しました。何らかの理由で、DFTオブジェクトをインスタンス化するとmain()すべて正常に動作しますが、名前のない名前空間を使用すると、マトリックスが正しく構築されません。

作品:

int main()
{
    DFT matrix(size);
    ...
    matrix.Transform(data);
    ...
}

動作しません:

namespace
{
    DFT matrix(size);
}

int main()
{
    ...
    matrix.Transform(data);
    ...
}

コンパイラのバグですか、それとも名前のない名前空間がどのように機能するかを覚えていませんか?

4

2 に答える 2

0

ここでの問題は、そのような名前のない名前空間からコンストラクターを実際に呼び出すことができないことです...

namespace {
    DFT matrix(size);
}

実際に関数を宣言しています。一方で、

namespace {
    DFT matrix;
}

動作しますが、ゼロ初期化子を使用します。

于 2016-10-20T16:39:45.877 に答える
0

ただの推測:

namespace
{
    DFT matrix(size);
}

それはどこsizeから来るのですか?これは を実行する前に構築されることを覚えておいてくださいmain

于 2012-04-20T10:48:50.820 に答える