Nasıl C Çeteleler kullanmak
Aşağıdaki gibi: enum
bir düşün
enum Days { Saturday,Sunday,Tuesday,Wednesday,Thursday,Friday };
enum
Bu bir örnek oluşturmak ve uygun bir değer ile başlatmak istiyorum, ben de:
Days day = Days.Saturday;
Şimdi ben bunu enum
varolan bir değer ile değişken veya örnek kontrol etmek istiyorum
if(day == Days.Saturday)
{
std::cout<<"Ok its Saturday";
}
Bana bir derleme hatası verir:
hata: birincil ifade önce beklenen ‘.’ token
Yani açık olmak gerekirse, ne söylemek arasında fark vardır:
if(day == Days.Saturday) //causes compilation error
ve
if(day == Saturday)
Bu iki aslında bir OK ve bir derleme hatasına neden o bakın ne?
CEVAP
Bu kodu yanlış
enum Days { Saturday,Sunday,Tuesday,Wednesday,Thursday,Friday};
Days day = Days.Saturday;
if(day == Days.Saturday)
Gün kapsamında değildir, ne de nesne. Bir türüdür. Ve üyeleri kendilerini yok Tür. Ne yazdı std::string.clear
eşdeğerdir. std::string
tipi, .
kullanamazsınız. On .
kullanınörnekbir sınıf.
Ne yazık ki, çeteleler büyülü ve benzetme orada durur. C 03, Days::Sunday
bir sınıf çünkü std::string::clear
üye işlev işaretçisi almak için yapabilirsiniz, ama geçersiz. Üzücü olan). Bu C (biraz) geriye C ile uyumlu olmasıdır, ve C numaralandırma genel ad olarak yazılmalıymış hiçbir ad vardı. Bu yüzden sözdizimi basit:"
enum Days { Saturday,Sunday,Tuesday,Wednesday,Thursday,Friday};
Days day = Saturday;
if(day == Saturday)
Nasıl bir WordPress kullanmak ile aynı...
Nasıl HTML Çeviklik paketi kullanmak i...
bir öğe veri-öznitelik değeri için bir...
Nasıl bir bağımlılık en son sürümünü k...
Nasıl Çift ya da tek ayraç, parantez, ...