नीचे दिए गए कोड को देखते हुए, कंपाइलर एक संदेश दिखा रहा है जो error: templates may not be ‘virtual’
इंगित करता है। क्या किसी को बग को हल करने के बारे में कोई सुझाव है?टेम्पलेट्स 'वर्चुअल' नहीं हो सकते हैं
template < class FOO_TYPE>
class CFoo{
public:
...
template < class BAR_TYPE >
virtual void doSomething(const CBar<BAR_TYPE> &); // here's the error
...
virtual ~CFoo();
protected:
MyClass <FOO_TYPE> * m_pClass;
};
template < class FOO_TYPE >
template < class BAR_TYPE >
void CFoo<FOO_TYPE>::doSomething(const CBar<BAR_TYPE> & refBar){
...
}
यह एक बग नहीं है, यह एक सुविधा है, आप वर्चुअल वर्क टेम्पलेट घोषित नहीं कर सकते हैं। आपको एक और दृष्टिकोण तलाशने की ज़रूरत है, और यह उस पर निर्भर करता है कि आप क्या करने की कोशिश कर रहे हैं ... – Nim
बात यह है कि फ़ंक्शन का पैरामीटर एक टेम्पलेट ऑब्जेक्ट है और मैं इसकी घोषणा नहीं बदल सकता। – Javier
सीबीर के प्रत्येक उदाहरण के लिए आपको एक अलग फ़ंक्शन की आवश्यकता क्यों है? –