Citat:
Acko95: Znaci, ako sam ja dobro shvatio, iz ovih odgovora i iz nekih mojih experimenata, ako ja stavim enum pa neko ime, kasnije u programu sa tim imenom mogu da gradim nove promenljive?
Naprimer kad bih stavio enum dani (pon.....) onda bih mogao da stavim dani DayOff i on bi kreirao promenljivu dayoff tipa dani?
Tačno. Emuneracija je
tip podatka definisan od strane korisnika koji se sastoji od niza slovnih konstanti koje takođe sam korisnik definiše i one se nazivaju
enumeratori. Svaki enumerator je predstavljen
celim brojem koji predstavlja njegovo
mesto u nizu enumeracije, osim ako ti eksplicitno ne zadaš koju celobrojnu vrednost će imati.
Code:
enum GodisnjaDoba { Zima, Prolece, Leto, Jesen};
Podrazumevano je da je Zima 0, Prolece 1, Leto 2, Jesen 3. Može se to i promeniti recimo ovako:
Code:
enum GodisnjaDoba { Zima = 100, Prolece, Leto, Jesen};
Nakon tako nečega će Zima biti 100, Prolece 101, Leto 102, Jesen 103. Može i da se za svaki enumerator nameni poseban ceo broj.
Code:
enum GodisnjaDoba { Zima = 111, Prolece = 222, Leto = 333, Jesen = 444};
int promenljivoj se može dodeliti vrednost enumeracije, dok se enumeraciji ne može dodeliti celobrojna vrednost. Evo ti mali primer ovoga što sam ispričao:
Code:
enum GodisnjaDoba { Zima, Prolece, Leto, Jesen};
GodisnjaDoba godisnjeDoba;
godisnjeDoba = Zima;
// godisnjeDoba = 0; // greška prilikom kompajliranja
int godisnjeDobaInt = godisnjeDoba;
std::cout << godisnjeDobaInt;
if (godisnjeDoba == Zima)
{
std::cout << "Zima je.";
}
else
{
std::cout << "Nije zima.";
}
if (godisnjeDoba == 0)
{
std::cout << "Zima je.";
}
else
{
std::cout << "Nije zima.";
}