C++ C+的多重遗传+;,不同的文件:;在';之前应为类名';代币;
我在MainController.h中得到了这个错误“在“,”标记之前应该有类名”和“在“{”标记之前应该有类名” 我想我正在根据需要包括文件,也在所有的头中执行#ifndef HEADER#H#define HEADER#H等操作,在编写MainController类之前我没有任何错误。 我不知道为什么会出现这个错误。我在这里遗漏了什么 我有N4GestureRecognitor。h:C++ C+的多重遗传+;,不同的文件:;在';之前应为类名';代币;,c++,C++,我在MainController.h中得到了这个错误“在“,”标记之前应该有类名”和“在“{”标记之前应该有类名” 我想我正在根据需要包括文件,也在所有的头中执行#ifndef HEADER#H#define HEADER#H等操作,在编写MainController类之前我没有任何错误。 我不知道为什么会出现这个错误。我在这里遗漏了什么 我有N4GestureRecognitor。h: class N4GestureRecognizer; class N4GestureRecognizerDa
class N4GestureRecognizer;
class N4GestureRecognizerDataSource{ /*it uses N4GestureRecognizer*/ };
class N4GestureRecognizerDelegate{ };
class N4GestureRecognizer {
...
};
N4FingerTIPGEstureRecognitor.h
#include "N4GestureRecognizer.h"
class N4FingerTipGestureRecognizer;
class N4FingerTipGestureRecognizerDelegate : public N4GestureRecognizerDelegate{
public:
virtual void fingerTipGestureRecognizerCallback(N4FingerTipGestureRecognizer *recognizer) = 0;
};
class N4FingerTipGestureRecognizer : public N4GestureRecognizer{
...
};
和主控制器
#include "N4GestureRecognizer.h"
#include "N4FingerTipGestureRecognizer.h"
using namespace cv;
//******Error is in the next line******
class MainController : public N4GestureRecognizerDatasource, public N4FingerTipGestureRecognizeDelegate{
protected:
Mat image;
public:
/*virtual*/ Mat gestureRecognizerNeedsImageFrame(N4GestureRecognizer *recognizer);
/*virtual*/ void fingerTipGestureRecognizerCallback(N4FingerTipGestureRecognizer *recognizer);
};
您的代码中似乎有两个输入错误:
n4gestrerecognizer.h
中,您拥有n4gestrerecognizer数据源
,但您尝试拥有main控制器
继承自n4gestrerecognizer数据源
;请注意数据源
中的S
的不同情况N4FingerTipGestureRecognizer.h
中,您有N4FingerTipGestureRecognizer委托
,但您尝试让main控制器
继承自N4FingerTipGestureRecognizer委托
;请注意委托
之前缺少的r
假设上面粘贴的源文件确实是源文件中包含的文本,那么问题出在
类N4GestureRecognitizerDataSource
与公共N4GestureRecognitizerDataSource
相比,您不是在写\ifndef HEADER\u H
,是吗?每个头的宏名称都需要不同。不要写cv
也没有声明类型Mat
,并且会导致与问题无关的其他编译错误。为什么我不应该在头文件中编写“使用名称空间”?