C statik sabit dize (sınıf üyesi)
Bir sınıf (şekil-fabrika bu durumda) için özel bir statik sabit olmasını isterim. Böyle bir şey yapmak istiyorum.
class A {
private:
static const string RECTANGLE = "rectangle";
}
Ne yazık ki (g ) C derleyicisi gibi hata her türlü.
ISO C başlatma yasaklıyor ‘’. DİKDÖRTGEN üyesi
sınıf içinde olmayan bir tamsayı türü statik veri üyesi başlatma geçersiz‘:: std string’
hata: yapım ‘DİKDÖRTGEN’ statik
Bu üye tasarımı bu tür bir standart ile uyumlu olmadığını söylüyor. Nasıl bir özel dizge sabiti (ya da belki) bir ortak kullanmak zorunda kalmadan var mı #Direktifi (veri uglyness önlemek istiyorum. genellik!) tanımlamak
Herhangi bir yardım için teşekkür ederiz. Teşekkürler.
CEVAP
Sınıf tanımının dışında bir statik üyesi tanımlamak ve initailizer sağlamak için var.
İlk
// In a header file (if it is in a header file in your case)
class A {
private:
static const string RECTANGLE;
};
ve sonra
// In one of the implementation files
const string A::RECTANGLE = "rectangle";
Aslında kullanmaya çalışıyorlardı sözdizimi (başlatıcı sınıf tanımı içinde) sadece integral ve numaralama türleri ile izin verilir.
::push_back vector) kullanır değeri, s...
Hata kullanırken sınıfının statik olma...
Tanımlama statik sabit sınıf tanımında...
Neden't olmayan sabit başlatılama...
c statik bir dize sabit dize vs#...