0

我正在尝试使用其 .h 文件开头的开源类:

template <class DT>
class FFTReal
{
public:
enum {          MAX_BIT_DEPTH   = 30    };
typedef DT  DataType;
explicit            FFTReal (long length);
...

我第一次在我的班级的私人部分创建一个指向班级的指针:

ffft::FFTReal<double> *m_fft_object;

然后,在初始化函数中,使用

m_fft_object = new fft_object((long)(FFTWindowSize));

正是在最后一行中,我收到错误“错误:预期类型”。我已经对错误进行了一些搜索,但似乎没有什么与我的特定问题相匹配。

谢谢

4

1 回答 1

4

大概这是因为fft_object不是类型。你可能是这个意思:

m_fft_object = new ffft::FFTReal<double>(static_cast<long>(FFTWindowSize));

我还为您更正了 C 风格的演员表。

如评论中所述,除非您有充分的理由,否则应避免使用原始指针来存储对象数据。如果数据可以为空,请考虑使用智能指针 ( std::unique_ptr<ffft::FFTReal<double>>),否则您可以简单地将对象实例存储为值 ( ffft::FFTReal<double>)。任何一个选项都会使内存泄漏极不可能,而在使用new原始指针时,您必须非常小心地删除分配的对象,然后再使用它。

于 2013-08-21T22:31:26.323 回答