template <class T>
class baseclass{
protected:
T data;
public:
baseclass(){};
void setData(T d);
};
template<class T>
void baseclass<T>::setT(T d){
data = d;
}
ऊपर दिखाया गया मेरा बेस क्लास, एक संरक्षित सदस्य चर, एक सेटर है।सरल टेम्पलेट विरासत समस्या सी ++
template <class T>
class aclass : public baseclass<T>
{
public:
aclass(T d);
};
template<class T>
aclass<T>::aclass(T d){
setData(d); <---WORKS
data = d; <---DOESN'T WORK
}
अब यह मेरा पहला उप-वर्ग है। किसी कारण से, संरक्षित सदस्य चर का उपयोग सीधे काम नहीं कर रहा है हालांकि मुझे विश्वास है कि इसे करना चाहिए। हालांकि, सेटर का उपयोग ठीक काम करता है। मैं सी ++ के साथ एक नोब हूं, मुझे यकीन है कि मुझे कुछ स्पष्ट याद आ रही है।
यदि आप इसे लिखते हैं तो यह काम करता है-> डेटा = डी ;? –
क्या आप कृपया अधिक विशिष्ट हो सकते हैं इसका अर्थ है "काम नहीं करता"? क्या आपको एक कंपाइलर त्रुटि मिल रही है (और यदि हां, तो कौन सा), या यह रनटाइम पर कुछ भी नहीं करता है या क्या? –
@ माइकल हाँ, यह करता है। सहज रूप में। – jakev