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

  • expertvillage

    expertvillag

    5 NİSAN 2006
  • lane182videos

    lane182video

    6 EKİM 2011
  • Richard Laxa

    Richard Laxa

    30 AĞUSTOS 2012