我看了很多东西,尝试了一些我在stackoverflow和其他网站上发现的东西,但是我仍然不知道如何解决这个问题...

C++主文件:source.cpp

#include "sources.h"
#include "fft_windows.h"
...

源文件
#include "Array2D.h"
...

Array2D.h
#ifndef ARRAY2D_H_
#define ARRAY2D_H_

#include <cassert>
#include "Features.h"

template <class T> class Array2D{
...
};
#endif

功能.h
#ifndef FEATURES_H_
#define FEATURES_H_


#include <string>

using namespace std ;


class Features : public Array2D {
...
};
#endif

fft_window.h(在fft_window.cpp中定义的函数声明)
//#include "Array2D.h"
template <class T>class Array2D;

void random_example(unsigned int i, Array2D <double> &arr);
...

我已经尝试了所有发现的内容,由于某种原因,我仍然在class Features : public Array2D {行的Features.h中收到此错误...

任何想法 ?

最佳答案

首先,Features.h需要包含Array2D.h,其次您需要进行无限包含包含递归,其次,您需要在从Array2D继承时指定template参数:

class Features : public Array2D<int> {
//                  example --- ^^^

关于c++ - “expected class-name before ' {编译时的' token”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7915416/

10-11 22:56