SORU
20 Ocak 2009, Salı


C sınıfı tanımlayan dize sabitleri ?

Bu iki stilleri , eğer biri diğerinden daha iyi olup olmadığından emin değilim etrafta kodu (tarz meselesi) gördün mü? Başka bir yere bir seçsin neden herhangi bir önerileri var mı.

 //Example1
 class Test {

    private:
        static const char* const str;

};

const char* const Test::str = "mystr";

//Example2
class Test {

     private:
         static const std::string str;

};

const std::string Test::str ="mystr";

CEVAP
20 Ocak 2009, Salı


Genellikle düz char işaretçisi üzerinde std::string tercih etmelisiniz. Burada, ancak, char işaretçisi dize ile başlatılan önemli bir faydası vardır.

Statik veri için iki başlatmaları vardır. Bir adlı başlatma statik, diğeri dinamik başlatma denir. Sabit ifade ile başlatılan ve Bakla (işaretçiler gibi) bu nesneler için C dinamik başlatma olmadan önce kendi başlatma çok başında olur gerektirir. Böyle bir std::string başlatılıyor dinamik olarak yapılacaktır.

Eğer bir nesne bir sınıf statik bir nesne, bazı dosya ve ihtiyaçlara erişim dizesi sırasında başlatma, buna emin olabilirsin olmaktan set-up zaten kullandığınızda const char* const sürümü kullanırken std::string sürüm yok başlatıldı statik, bilmiyorum olup olmadığını dize zaten başlatıldı çünkü sipariş başlatma nesneler arasında çeviri birimi sınırları tanımlı değildir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 3biblecom

    3biblecom

    23 NİSAN 2011
  • Caroline Saquet

    Caroline Saq

    1 EKİM 2011
  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010