Klasse 'ist kein Vorlagentyp'

Was bedeutet dieser Fehler?

Generic.h:25: error: 'Generic' is not a template type

Ist hier generisch.

template <class T>
class Generic: public QObject, public CFG, public virtual Evaluator {
    Q_OBJECT
    std::string key_;
    std::vector<std::string> layouts_;
    std::vector<std::string> static_widgets_;
    std::map<std::string, std::vector<widget_template> > widget_templates_;
    std::map<std::string, Widget *> widgets_;
    int type_;
    LCDWrapper *wrapper_;

    protected:
    LCDText *lcdText_;

    public:
    Generic(Json::Value *config, int type);
    ~Generic();
    void CFGSetup(std::string key);
    void BuildLayouts();
    void StartLayout();
    int GetType() { return type_; }
    //T *GetLCD() { return lcd_; }
    LCDText *GetLCDText() { return lcdText_; }
    virtual void Connect(){};
    virtual void SetupDevice(){};
    std::map<std::string, Widget *> Widgets();
    std::string CFG_Key();
    LCDWrapper *GetWrapper() { return wrapper_; }

};

Ist das Problem, dass es andere Klassen unterordnet? Ich habe ein Experiment versucht, das diese Theorie testet, aber es hat diesen Fehler nicht hervorgerufen.

Edit: Ok, also ein paar von euch haben darauf hingewiesen, dass ich Generic an anderer Stelle deklarieren könnte, ohne es zu einer Template-Klasse zu machen. Das ist richtig. Und wenn ich es zu einer Vorlage mache, erhalte ich einen weiteren Fehler.

Property.h: 15: Fehler: ISO C ++ verbietet die Deklaration von 'Generic' ohne Typ

template <class T>
class Generic;

class Property : public CFG {
    Generic *visitor; // line 15
    bool is_valid;
    QScriptValue result;
    Json::Value *expression;
    public:
    Property(const Property &prop);
    Property(Generic *v, Json::Value *section, std::string name, Json::Value *defval);
    ~Property();
    bool Valid();
    int Eval();
    double P2N();
    int P2INT();
    std::string P2S();
    void SetValue(Json::Value val);
    Property operator=(Property prop);
};

Antworten auf die Frage(6)

Ihre Antwort auf die Frage