我正在尝试使用其.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));
在最后一行中,我收到错误“错误:预期类型”。 我已经对错误进行了一些搜索,但似乎没有任何内容符合我的特定问题。
由于
答案 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
和原始指针时,必须非常小心地在完成后删除已分配的对象。