एक सामान्य मामले में सार कोड को निम्नलिखित कोड में कैसे कार्यान्वित किया जाए। कोड उस लाइब्रेरी से सरलीकृत है जिस पर मैं काम कर रहा हूं। तो int और double के लिए एक स्पष्ट कार्यान्वयन एक विकल्प नहीं है।एक अमूर्त विधि को कार्यान्वित करने के लिए कैसे करें जब अमूर्त वर्ग का प्रयोग एक भिन्न संदर्भ में
template <typename T>
struct Foo
{
virtual void send(T t) = 0;
};
template <typename...T>
struct Bar : Foo<T>...
{
void send(T t) override { // does not compile because
// abstract method not implemented
}
};
int main() {
// example usage
Bar<int, double> b;
b.send(1);
b.send(2.3);
}
अग्रिम में बहुत धन्यवाद।
संपादित करें: अमूर्त विधि में आभासी जोड़ा गया।
अरे, क्या आप मुझे बता सकते हैं कि क्या अंतर के बीच है: 'foo2 ...' और 'foo2 ' (डॉट्स के बाहर ब्रैकेट ब्रैकेट अंदर बनाम) –
Brandon
@Brandon - पूरी तरह से अलग अलग बातें कर रहे हैं; यदि आप 'Foo2' लिखते हैं, तो आप 'size2 ... (T) 'टेम्पलेट पैरामीटर के साथ एक एकल बेस क्लास,' Foo2 ' घोषित करते हैं; यदि आप 'Foo2 ...' लिखते हैं, तो आप 'sizeof ... (टी) 'बेस क्लास,' Foo2 , Foo2 , Foo2 /* आदि * /', प्रत्येक टेम्पलेट पैरामीटर के साथ घोषित करते हैं –
max66