इस त्रुटि का क्या अर्थ है?कक्षा 'एक टेम्पलेट प्रकार नहीं है'
Generic.h:25: error: 'Generic' is not a template type
यहां जेनेरिक है।
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_; }
};
क्या समस्या यह है कि यह अन्य वर्गों को उपclasses? मैंने सिद्धांत का परीक्षण करने की कोशिश की, लेकिन यह इस त्रुटि का उत्पादन नहीं किया।
संपादित करें: ठीक है, तो आप में से कुछ लोगों ने बताया कि मैं इसे टेम्पलेट क्लास के बिना कहीं और जेनेरिक घोषित कर सकता हूं। यह सच है। और जब मैं इसे एक टेम्पलेट बना देता हूं, तो मुझे एक और त्रुटि मिलती है।
Property.h: 15: त्रुटि: आईएसओ सी ++ 'जेनेरिक' की घोषणा कोई प्रकार
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);
};
लाइन 25 क्या है? क्या यह 'Q_OBJECT' रेखा है? – eduffy
यह है: क्लास जेनेरिक: सार्वजनिक क्यूओब्जेक्ट, सार्वजनिक सीएफजी, सार्वजनिक आभासी मूल्यांकनकर्ता { – Scott
अनावश्यकता क्षमा करें, लेकिन जेनेरिक एक सामान्य सामान्य नाम है, तो आप नाम को और अधिक वर्णनात्मक में बदलना चाहेंगे। और/या (लेकिन ज्यादातर और) इसे नामस्थान में रखें। – GManNickG