Próbuję przekonwertować niektóre klasy Python na C++, ale mam pewne problemy. Mam klasę Base, która ma zmienną klasy (statyczną) i metodę, która zwraca ją. I również klasę pochodnych, które zasłania zmienną klasy (statyczne), podobnie jak,Funkcje członków dziedziczenia C++ za pomocą zmiennych statycznych
W Pythonie
class Base:
class_var = "Base"
@classmethod
def printClassVar(cls):
print cls.class_var
class Derived(Base):
class_var = "Derived"
d = Derived()
d.printClassVar()
która drukuje się żądaną pochodną zmiennej klasie „pochodne”. Masz pomysł, jak uzyskać tę samą funkcjonalność w języku C++? Próbowałem, ale w końcu otrzymuję zmienną klasy klasy Base.
w 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();
}
Albo, zamiast zmiennej statycznej w ogóle, po prostu powrót stała, w tym przykładzie. Jednak może to nie być odpowiednie dla wszystkich solutonów. –