代码之家  ›  专栏  ›  技术社区  ›  nacho4d

C++中的多继承性,不同文件:“预期类名前”、“令牌”

c++
  •  0
  • nacho4d  · 技术社区  · 14 年前

    我在maincontroller.h中得到这个错误“expected class name before”、“token”和“expected class name before”“token”。 我认为我包括了需要的文件,也在所有头文件中执行ifndef header定义header等操作,直到我编写了MainController类才有错误。 我不知道为什么会出现这个错误。我这里缺什么?

    我有N4探险家签名。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{
    ...    
    };
    

    和主控制器。

    #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);
    
    };
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   Philipp    14 年前

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

    1. N4GestureRecognizer.h 你有 N4GestureRecognizerDataSource ,但你尝试过 MainController 继承自 N4GestureRecognizerDatasource ;注意 S 在里面 DataSource .
    2. N4FingerTipGestureRecognizer.h 你有 N4FingerTipGestureRecognizerDelegate 但是你想 主控制器 继承自 N4FingerTipGestureRecognizeDelegate ;注意丢失的 r 之前 Delegate .
        2
  •  1
  •   wilx    14 年前

    假设上面粘贴的源确实是源中包含问题的文本 class N4GestureRecognizerDataSource 对战 public N4GestureRecognizerDatasource .