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

Dklarowanie tablic enum w klasie.

Ostatnio zmodyfikowano 2014-01-17 17:54
Autor Wiadomość
dejmien
Temat założony przez niniejszego użytkownika
Dklarowanie tablic enum w klasie.
» 2014-01-17 10:54:34
Witam.

Mam tablice która zawiera wartości z typu wyliczeniowego. Normlanie nie mam z tym problemu ale podczas deklaracji w klasię pojawiają się problemy. Jak by ktoś mógł zerkną co robię źle:

C/C++
class plansza
{
public:
    enum field { puste, kolko, krzyzyk };
    field tablica[ 3 ][ 3 ];
};
plansza::field tablica[ 3 ][ 3 ] = { { puste, puste, puste },
    { puste, puste, puste },
    { puste, puste, puste } };

Próbowałem już na różne sposoby i cały czas błąd: puste was not declarated in this scope. Nie wiem czemu tak przecież tablica jest typu field...
P-102351
maly
» 2014-01-17 11:07:23
Spróbuj
plansza::puste
P-102352
dejmien
Temat założony przez niniejszego użytkownika
» 2014-01-17 11:19:11
Nie działa to
plansza::puste;
P-102353
maly
» 2014-01-17 11:26:41
Jeśli chcesz zainicjować tablicę w klasie to

Wymaga C++11
C/C++
class plansza
{
public:
    enum field { puste, kolko, krzyzyk };
    plansza::field tablica[ 3 ][ 3 ] = { { puste, puste, puste },
        { puste, puste, puste },
        { puste, puste, puste } };
};

lub

C/C++
class plansza
{
public:
    enum field { puste, kolko, krzyzyk };
    plansza::field tablica[ 3 ][ 3 ];
   
    plansza()
        : tablica(
    { { puste, puste, puste },
        { puste, puste, puste },
        { puste, puste, puste } } )
    {
       
    }
};

albo poprostu dwoma for-ami w konstruktorze;
P-102354
Monika90
» 2014-01-17 11:26:58
W ten sposób można inicjalizować tylko statyczne składowe, niestatyczną zaincjalizuj w konstruktorze.
C/C++
class plansza {
public:
    plansza()
        : tablica()
    { }
private:
    enum field { puste, kolko, krzyzyk };
    field tablica[ 3 ][ 3 ];
};
P-102355
dejmien
Temat założony przez niniejszego użytkownika
» 2014-01-17 17:54:30
Dzięki Monika miałaś racje, konstruktor rozwiązał sprawę.
P-102378
« 1 »
  Strona 1 z 1