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

  • Benjamin Heckendorn

    Benjamin Hec

    4 Mayıs 2008
  • DancingIsAPassion

    DancingIsAPa

    29 AĞUSTOS 2009
  • Dumb Stupid Videos

    Dumb Stupid

    26 Kasım 2013