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
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;
};
Özel ArrayİndexOutOfBoundsException gö...
Haritalar Google: Nasıl özel bir İnfoW...
Nasıl diyebilir miyim ::std::make_shar...
Tasarım desenleri bir uygulamada özel ...
Android – birden çok özel sürümleri ay...