के प्रकार के साथ फ़ंक्शन पैरामीटर प्रकार को ओवरराइड करें, मैं एक विधि के साथ एक इंटरफेस (बजाय सी ++ में वर्चुअल बेस क्लास) बनाने की योजना बना रहा हूं जो स्वयं के प्रकार का तर्क लेता है।व्युत्पन्न वर्ग
class Base {
public:
virtual void seriousMethod(const Base &arg) = 0;
}
व्युत्पन्न वर्ग को बेस क्लास प्रकार का कोई तर्क नहीं लेना चाहिए, लेकिन व्युत्पन्न वर्ग प्रकार का।
class Derived: public Base {
public:
virtual void seriousMethod(const Derived &arg) { /* ... */ }
}
मुझे यह कैसे पता चलेगा? क्या मुझे बेस क्लास टेम्पलेट करना होगा (उदा। Base<Derived>
) या क्या क्लीनर समाधान है?
बिंदु पर और अधिक - यह करने के लिए प्रेरणा क्या है? –
"व्युत्पन्न वर्ग को बेस क्लास प्रकार का कोई तर्क नहीं लेना चाहिए, लेकिन व्युत्पन्न वर्ग प्रकार का" - वर्चुअल विधियों में क्या बात है? – berak
@EdHeal विशिष्ट होने के लिए, एक ए-स्टार सर्च जेनेरिक नोड क्लास जिसे व्युत्पन्न कार्यान्वयन द्वारा निर्दिष्ट किया जाना है। – Appleshell