SORU
28 Temmuz 2009, Salı


C statik kurucular ? özel statik nesneleri başlatmak gerekiyor

Özel statik veri üyesi (tüm karakterler a-z içeren bir vektör ile bir sınıf olmasını istiyorum. Ya da C#, java sadece bir "sınıf örneklerini yaparım, sınıfın statik veri üyeleri kurar önce çalışır. yapıcı" statik yapabilirsiniz Sadece bir kez çalıştırmak alır değişkenleri salt okunur ve sadece bir kez ayarlanması gerekir gibi) ve sınıf bir fonksiyon olduğu için özel çağırılır. Elimden Ekle kod oluşturucu çekleri görmek için vektör başlatıldı, ve bunu başlatmak değil, ama o tanıttı, çok gerekli kontrolleri ve değil gibi en uygun çözüm için sorun.

Bu düşünce aklıma gelmişken beri bu değişkenler okunacak sadece, onlar sadece ortak statik sabit, bu yüzden ben bunları dışarı çıktıktan sonra sınıfı, ama bir kez daha, göründüğü gibi çirkin bir hack.

Eğer yapıcıyı onları başlatmak istemiyorum eğer bir sınıf içinde özel bir statik veri üyesi olması mümkün mü?

CEVAP
28 Temmuz 2009, Salı


Statik oluşturucu eşdeğer almak için, statik verileri tutmak ve bu sıradan bir sınıf statik bir örnek yapmak ayrı sıradan bir sınıf yazmak gerekir.

class StaticStuff
{
     std::vector<char> letters_;

public:
     StaticStuff()
     {
         for (char c = 'a'; c <= 'z'; c  )
             letters_.push_back(c);
     }

     // provide some way to get at letters_
};

class Elsewhere
{
    static StaticStuff staticStuff; // constructor runs once, single instance

};

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Canal de arkyoru

    Canal de ark

    18 Ocak 2007
  • UrAvgConsumer

    UrAvgConsume

    1 Ocak 2012
  • wwjoshdu

    wwjoshdu

    18 ŞUBAT 2011