यही वह है जिसे मैं प्राप्त करना चाहता हूं। पत्ती घटक Component<ParentT>
प्राप्त कर लेंगे, दूसरों Component<ParentT, ChildT>
टेम्पलेट पैरामीटर redeclaration
template <typename T>
class Component{
protected:
typedef Component<T> ParentComponentT;
...
};
template <typename ParentT, typename ChildT>
class Component: public Component<ParentT>{
protected:
typedef std::vector<ChildT*> CollectionT;
...
};
प्राप्त कर लेंगे लेकिन समस्या यह खाका मापदंडों redeclared हो रही है। और मैं दूसरे को ऊपर से ऊपर नहीं ले जा सकता क्योंकि दूसरा व्यक्ति पहले व्यक्ति को विरासत में लेता है।
error: redeclared with 2 template parameter(s)
note: previous declaration ‘template class Component’ used 1 template parameter(s)
पल के लिए विविध टेम्पलेट्स को अनदेखा करना, टेम्पलेट्स में निश्चित पैरामीटर हैं; एक एकल 'घटक <>' में एक और दो पैरामीटर नहीं हो सकते हैं। यह एक [एक्सवाई समस्या] की तरह दिखता है (http://meta.stackexchange.com/q/66377/166663) - आप वास्तव में क्या करने की कोशिश कर रहे हैं? – ildjarn
फिर इसे मॉडल करने का अच्छा तरीका क्या है? 'घटक'? –
यह निर्भर करता है - आप आधार और बच्चे के समान नाम क्यों चाहते हैं? उन्हें विभिन्न प्रकार के नाम दें और आपको कोई समस्या नहीं है। – ildjarn