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
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.
Neden bir c sınıfı standart bir dize s...
Nasıl JavaScript dize sabitleri bildir...
Ne zaman Dize sabitleri üzerinde Dize ...
Nasıl bir Python sınıfı dize gösterimi...
Null veya boş bir dize değişkeni kontr...