错误:预期类型

时间:2013-08-21 22:29:35

标签: c++

我正在尝试使用其.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));

在最后一行中,我收到错误“错误:预期类型”。 我已经对错误进行了一些搜索,但似乎没有任何内容符合我的特定问题。

由于

1 个答案:

答案 0 :(得分: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和原始指针时,必须非常小心地在完成后删除已分配的对象。