Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Konstruktor zagnieżdżonej klasy

Ostatnio zmodyfikowano 2024-12-25 21:46
Autor Wiadomość
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.

C/C++
class CharacterInfoPanel
    : public Panel
{
   
   
class CharacterInfoMenuButton {
       
       
CharacterInfoMenuButton();
       
void handleEvent( sf::Event & event ) { }
       
void update() { }
       
void draw() { }
    }
;
   
   
class Statistics
        : private CharacterInfoMenuButton
    {
       
       
Statistics()
            :
CharacterInfoMenuButton()
       
{ /*error*/ }
       
void handleEvent( sf::Event & event ) { }
       
void update() { }
       
void draw() { }
    }
;
   
   
class Layout
        : private CharacterInfoMenuButton
    {
       
       
Layout()
            :
CharacterInfoMenuButton()
       
{ /*error*/ }
       
void handleEvent( sf::Event & event ) { }
       
void update() { }
       
void draw() { }
    }
;
   
   
class Dialogues
        : private CharacterInfoMenuButton
    {
       
       
Dialogues()
            :
CharacterInfoMenuButton()
       
{ /*error*/ }
       
void handleEvent( sf::Event & event ) { }
       
void update() { }
       
void draw() { }
    }
;
   
   
class Quests
        : private CharacterInfoMenuButton
    {
       
       
Quests()
            :
CharacterInfoMenuButton()
       
{ /*error*/ }
       
void handleEvent( sf::Event & event ) { }
       
void update() { }
       
void draw() { }
    }
;
   
P-181984
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 ?

C/C++
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() { }
    }
;
};
P-181986
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.

C/C++
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() { }
   
}
;
P-181988
« 1 »
  Strona 1 z 1