Diskuze: C++ enum, struct, warning
Zobrazeno 3 zpráv z 3.
Ahoj. Od standardu C++11 je v C++ upřednostňován tzv. scoped enum. Ten se zapisuje takhle:
enum class ePohlavi {
pZena, pMuz
};
Osoba osoba = { "Lukas", "Novak", 35, ePohlavi::pMuz };
Jde o to, že bez toho klíčového slova class
můžeš
kdekoliv programu použít právě pMuz
a pZena
(tj.
unscoped enum). V případě scoped enum je součástí jména právě i název
enumu, tedy ePohlavi::pMuz
a tak není "globální" prostor jmen
tak zanesen.
V C++ se také již nepíše typedef
, ale
struct Nazev
popř. enum Nazev
. Verze s
typedef
je spíše pro čisté C. Pokud chápu kontext, tak
kompiluješ ve Visual Studiu, který vše kompiluje právě pod C++.
V každém případě se jedná pouze o Warning a ne o chybu, program bude
fungovat a ten warning je spíše takové upozornění od novějších
standardů C++. Pokud se učíš C, můžeš s tím pokračovat. Pokud C++, je
lepší to opravit a také opravit typedef
.
Zobrazeno 3 zpráv z 3.