[C++] Inicjalizacja statycznego skladnika klasy zdefiniowanej w innej klasie
Ostatnio zmodyfikowano 2012-12-25 22:24
kizia Temat założony przez niniejszego użytkownika |
[C++] Inicjalizacja statycznego skladnika klasy zdefiniowanej w innej klasie » 2012-12-25 15:57:12 Mianowicie : class A : { class B : { private: static int staszek; }; }; Nom i teraz chcialbym staszkowi nadac jakas wartosc ale tak A::B::staszek = 2; Nie moge bo staszek jest prywatny :( |
|
Mrovqa |
» 2012-12-25 17:11:16 Staszka możesz spokojnie zainicjalizować, ale nie możesz mieć prywatnej klasy zagnieżdżonej (domyślny kwantyfikator dostępu w klasach to private). #include <iostream> using namespace std;
class A { public: class B { private: static int staszek; public: static void out() { cout << staszek << endl; } }; }; int A::B::staszek = 2;
int main() { A::B::out(); }
http://ideone.com/9t7Fnc |
|
DejaVu |
» 2012-12-25 20:05:50 |
|
kizia Temat założony przez niniejszego użytkownika |
» 2012-12-25 21:59:57 Aniii ten sposób ani ten nie działa :( |
|
DejaVu |
» 2012-12-25 22:14:32 Jak to nie działa, skoro obie metody się kompilują...? Jeżeli chcesz modyfikować zmienną spoza klasy to nie ma sensu jej czynić prywatnej. Powyższe sposoby służą do nadawania początkowej wartości dla zmiennej statycznej w klasie. |
|
Mrovqa |
» 2012-12-25 22:15:36 @kizia dałem Ci nawet linka do ideone.com gdzie ładnie się skompilowało i nawet wykonało. |
|
kizia Temat założony przez niniejszego użytkownika |
» 2012-12-25 22:24:31 Racja wszystko smiga, mimo tego ze kilka minut wczesniej mialem identycznie teraz sie normalnie skompilowało. Wielkie dzięki za pomoc! |
|
« 1 » |