我看了很多东西,尝试了一些我在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/