SORU
9 EKİM 2008, PERŞEMBE


Başlatılıyor özel static üyeler

Bu aptal bir soru gibi geliyor, ama ne C özel, statik veri üyesi başlatmak için en iyi yolu nedir ? Bana garip linker hata verir bu ama denedim:

class foo
{
    private:
        static int i;
};

int foo::i = 0;

Sınıfın dışından özel bir üye başlatmak istemiyorum çünkü bu olduğunu tahmin ediyorum. Bunu yapmak için en iyi yolu nedir?

CEVAP
9 EKİM 2008, PERŞEMBE


Sınıf bildirimi başlık dosyası (Veya kaynak dosya yoksa paylaşılan) olmalıdır.
Dosya: foo.h

class foo
{
    private:
        static int i;
};

Ancak başlatma kaynak dosya içinde olmalıdır.
Dosya: foo.cpp

int foo::i = 0;

Eğer başlatma başlık dosyasında ise üstbilgi dosyası içeren her dosya statik üyesi bir tanım olacaktır. Bağlantı aşamasında böylece değişkeni başlatmak için bu kodu birden fazla kaynak dosyaları, tanımlı olarak linker hataları alırsınız.

Not:Matt Curtis: C eğer statik bir üye değişkeni int türü ise yukarıdaki basitleştirilmesi sağlar (, *, *int*8 örneğin 9*). puan Sonra doğrudan üstbilgi dosyasında sınıf bildirimi içinde: üye değişkeni bildirmek başlatmak

class foo
{
    private:
        static int const i = 42;
};

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Friday NightFort

    Friday Night

    15 EYLÜL 2011
  • Nick Pitera

    Nick Pitera

    8 NİSAN 2006
  • TheDroidDemos

    TheDroidDemo

    15 ŞUBAT 2011