SORU
29 AĞUSTOS 2012, ÇARŞAMBA


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
29 AĞUSTOS 2012, ÇARŞAMBA


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)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jonathepianist

    jonathepiani

    31 Temmuz 2008
  • Kai Moosmann

    Kai Moosmann

    5 Temmuz 2006
  • Watcher3223

    Watcher3223

    15 Kasım 2007