[C++] Konstruktor zagnieżdżonej klasy
Ostatnio zmodyfikowano 2024-12-25 21:46
tBane Temat założony przez niniejszego użytkownika |
[C++] Konstruktor zagnieżdżonej klasy » 2024-12-24 19:42:10 Witam. Próbuję napisać konstruktor zagnieżdżonej klasy. Dlaczego konstruktor wyrzuca błąd ? Chciałbym uzyskać taki efekt, żeby w podpowiedziach kodu poza klasą CharacterInfoPanel nie były widoczne te zagnieżdżone klasy. class CharacterInfoPanel : public Panel { class CharacterInfoMenuButton { CharacterInfoMenuButton(); void handleEvent( sf::Event & event ) { } void update() { } void draw() { } }; class Statistics : private CharacterInfoMenuButton { Statistics() : CharacterInfoMenuButton() { } void handleEvent( sf::Event & event ) { } void update() { } void draw() { } }; class Layout : private CharacterInfoMenuButton { Layout() : CharacterInfoMenuButton() { } void handleEvent( sf::Event & event ) { } void update() { } void draw() { } }; class Dialogues : private CharacterInfoMenuButton { Dialogues() : CharacterInfoMenuButton() { } void handleEvent( sf::Event & event ) { } void update() { } void draw() { } }; class Quests : private CharacterInfoMenuButton { Quests() : CharacterInfoMenuButton() { } void handleEvent( sf::Event & event ) { } void update() { } void draw() { } }; |
|
tBane Temat założony przez niniejszego użytkownika |
» 2024-12-24 20:17:31 Zrobiłem coś takiego i się kompiluje, ale czy to jest poprawny kod ? class CharacterInfoPanel : public Panel { class CharacterInfoMenuButton { public: CharacterInfoMenuButton(); void handleEvent( sf::Event & event ) { } void update() { } void draw() { } }; class Statistics : protected CharacterInfoMenuButton { Statistics() : CharacterInfoMenuButton() { } void handleEvent( sf::Event & event ) { } void update() { } void draw() { } }; class Layout : protected CharacterInfoMenuButton { Layout() : CharacterInfoMenuButton() { } void handleEvent( sf::Event & event ) { } void update() { } void draw() { } }; class Dialogues : protected CharacterInfoMenuButton { Dialogues() : CharacterInfoMenuButton() { } void handleEvent( sf::Event & event ) { } void update() { } void draw() { } }; class Quests : protected CharacterInfoMenuButton { Quests() : CharacterInfoMenuButton() { } void handleEvent( sf::Event & event ) { } void update() { } void draw() { } }; };
|
|
tBane Temat założony przez niniejszego użytkownika |
» 2024-12-25 21:46:34 Dobra. Już znalazłem rozwiązanie. Wszędzie należy użyć public i wtedy działa i podpowiedzi są takie jak trzeba. class CharacterInfoPanel : public Panel { public: class CharacterInfoPage { public: CharacterInfoPage() { } void handleEvent( sf::Event & event ) { } void update() { } void draw() { } }; class Statistics : public CharacterInfoPage { public: Statistics() : CharacterInfoPage() { } void handleEvent( sf::Event & event ) { } void update() { } void draw() { } }; class Layout : public CharacterInfoPage { public: Layout() : CharacterInfoPage() { } void handleEvent( sf::Event & event ) { } void update() { } void draw() { } }; class Dialogues : public CharacterInfoPage { public: Dialogues() : CharacterInfoPage() { } void handleEvent( sf::Event & event ) { } void update() { } void draw() { } }; class Quests : public CharacterInfoPage { public: Quests() : CharacterInfoPage() { } void handleEvent( sf::Event & event ) { } void update() { } void draw() { } }; public: std::vector < CharacterInfoPage * > pages; CharacterInfoPanel() : Panel() { pages.push_back( new Statistics() ); pages.push_back( new Layout() ); pages.push_back( new Dialogues() ); pages.push_back( new Quests() ); } ~CharacterInfoPanel() { } void handleEvent( sf::Event & event ) { } void update() { } void draw() { } };
|
|
« 1 » |