我收到此错误“期望的类名称之前”,“标记”和“期望的类名称之前' MainController.h 我认为我包含所需的文件,还在所有头文件中执行#ifndef HEADER_H #define HEADER_H等,直到我编写MainController类为止,我没有任何错误。 我不知道为什么会出现此错误。我在这里错过了什么?C++中的多继承,不同的文件:“期望的类名称之前”,“标记”
我有N4GestureRecognizer.h:
class N4GestureRecognizer;
class N4GestureRecognizerDataSource{ /*it uses N4GestureRecognizer*/ };
class N4GestureRecognizerDelegate{ };
class N4GestureRecognizer {
...
};
N4FingerTipGestureRecognizer.h
#include "N4GestureRecognizer.h"
class N4FingerTipGestureRecognizer;
class N4FingerTipGestureRecognizerDelegate : public N4GestureRecognizerDelegate{
public:
virtual void fingerTipGestureRecognizerCallback(N4FingerTipGestureRecognizer *recognizer) = 0;
};
class N4FingerTipGestureRecognizer : public N4GestureRecognizer{
...
};
而且MainController.h
#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);
};
你不是*字面上写* #ifndef HEADER_H',是吗?每个标题的宏名称需要不同。 – Thomas 2010-08-01 16:28:36
不要在头文件中使用'namespace';并且请尝试发布实际的工作代码:在您的代码中声明名称空间'cv'和类型'Mat',并导致与该问题无关的其他编译错误。 – Philipp 2010-08-01 16:36:21
为什么我不应该在头文件中使用“使用名称空间”? – nacho4d 2010-08-01 16:41:36