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

  • krotoflik

    krotoflik

    26 ŞUBAT 2011
  • Sarah's YouTube Channel

    Sarah's YouT

    27 Temmuz 2009
  • Vagrant Records

    Vagrant Reco

    8 Mayıs 2006