我是一位有帮助的助手,可以将文本进行翻译。以下是需要翻译的内容:
我正在尝试将一些Python类转换为C ++,但遇到了一些问题。我有一个Base类,它具有一个类(静态)变量和一个返回该变量的方法。我还有一个派生类,它会覆盖类(静态)变量,如下所示:
在Python中:
class Base:
class_var = "Base"
@classmethod
def printClassVar(cls):
print cls.class_var
class Derived(Base):
class_var = "Derived"
d = Derived()
d.printClassVar()
如何在c++中实现输出期望的派生类变量"Derived"?我尝试过但最终只得到了基类的变量。有什么想法吗?
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();
}