我正在尝试将一些 Python 类转换为 c++,但遇到了一些麻烦。我有一个基类,它有一个类(静态)变量和一个返回它的方法。我还有一个派生类,它像这样覆盖类(静态)变量,
在 Python 中:
class Base:
class_var = "Base"
@classmethod
def printClassVar(cls):
print cls.class_var
class Derived(Base):
class_var = "Derived"
d = Derived()
d.printClassVar()
它打印出所需的派生类变量“Derived”。知道如何在 c++ 中获得相同的功能吗?我已经尝试过,但最终得到了 Base 类的类变量。
在 C++ 中
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();
}