错误:应为类型

Error: expected a type

本文关键字:类型 错误      更新时间:2023-10-16

我正在尝试使用一个开源类,其.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));

正是在最后一行中,我得到了错误"error:expected a type"。我已经搜索了一些错误,但似乎没有什么能与我的特定问题相匹配。

感谢

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

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

我还为你修正了C型演员阵容。

正如注释中所指出的,除非有充分的理由,否则应该避免使用原始指针来存储对象数据。如果数据应该可以为null,请考虑使用智能指针(std::unique_ptr<ffft::FFTReal<double>>),否则您可以简单地将对象实例存储为值(ffft::FFTReal<double>)。任何一种选择都会使内存泄漏的可能性极低,而当使用new和原始指针时,您必须非常小心地删除分配的对象。