मैं कुछ पायथन कक्षाओं को सी ++ में बदलने की कोशिश कर रहा हूं लेकिन मुझे कुछ परेशानी हो रही है। मेरे पास एक बेस क्लास है जिसमें कक्षा (स्थैतिक) चर है और एक विधि है जो इसे लौटाती है।सी ++ स्थैतिक चर का उपयोग करते हुए विरासत सदस्य कार्य
class Base:
class_var = "Base"
@classmethod
def printClassVar(cls):
print cls.class_var
class Derived(Base):
class_var = "Derived"
d = Derived()
d.printClassVar()
जो बाहर वांछित व्युत्पन्न वर्ग चर प्रिंट, "व्युत्पन्न": मैं भी एक व्युत्पन्न वर्ग जो इतनी तरह वर्ग (स्थिर) चर ओवरराइड करता है,
अजगर में है। कोई विचार है कि मैं सी ++ में एक ही कार्यक्षमता कैसे प्राप्त कर सकता हूं? मैंने कोशिश की है लेकिन बेस क्लास के क्लास वैरिएबल को प्राप्त करना समाप्त कर दिया है।
class Base
{
public:
void printStaticVar() {cout << get_string() << endl;}
static string s_var;
virtual string const& get_string() { return Base::s_var; }
};
string Base::s_var = "Base";
class Derived : public Base
{
public:
static string s_var;
virtual string const& get_string() { return Derived::s_var; }
};
string Derived::s_var = "Derived";
void main()
{
Derived d;
d.printStaticVar();
}
ध्यान दें कि printStaticVar
स्थिर नहीं होना चाहिए:
सी ++ में
class Base
{
public:
static void printStaticVar(){cout << s_var << endl;}
static string s_var;
};
string Base::s_var = "Base";
class Derived : public Base
{
public:
static string s_var;
};
string Derived::s_var = "Derived";
void main()
{
Derived d;
d.printStaticVar();
}
या, बजाय एक स्थिर चर बिल्कुल, बस वापसी होने के एक स्थिर, इस उदाहरण में। हालांकि यह सभी solutons के लिए उपयुक्त नहीं हो सकता है। –