【问题标题】:multiheritance in C++, different files : "Expected class-name before ',' token"C ++中的多继承,不同的文件:“','令牌之前的预期类名”
【发布时间】:2010-08-01 16:26:39
【问题描述】:

我在 MainController.h 中收到此错误“','令牌之前的预期类名”和“'{'令牌之前的预期类名” 我想我会根据需要包含文件,还在所有标题中执行#ifndef HEADER_H #define HEADER_H 等,在我编写 MainController 类之前我没有错误。 我不知道为什么会出现这个错误。我在这里错过了什么?

我有 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,是吗?每个标头的宏名称需要不同。
  • 不要在头文件中写using namespace;请尝试发布真实有效的代码:您的代码中既没有声明命名空间cv,也没有声明类型Mat,并导致与问题无关的其他编译错误。
  • 为什么我不应该在标题中写“使用命名空间”?

标签: c++


【解决方案1】:

您的代码中似乎有两个拼写错误:

  1. N4GestureRecognizer.h 中有N4GestureRecognizerDataSource,但你尝试让MainController 继承自N4GestureRecognizerDatasource;注意DataSourceS 的不同大小写。
  2. N4FingerTipGestureRecognizer.h 中你有N4FingerTipGestureRecognizerDelegate,但你试图让MainController 继承自N4FingerTipGestureRecognizeDelegate;请注意Delegate 之前缺少的r

【讨论】:

    【解决方案2】:

    假设您在上面粘贴的源代码确实是您的源代码包含的文本,问题是在class N4GestureRecognizerDataSourcepublic N4GestureRecognizerDatasource 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 1970-01-01
      • 2012-10-30
      相关资源
      最近更新 更多