一部の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()
これは、目的の派生クラス変数「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();
}