class C
{
public:
C() : arr({1,2,3}) //doesn't compile
{}
/*
C() : arr{1,2,3} //doesn't compile either
{}
*/
private:
int arr[3];
};
Bunun nedeninin dizilerin yalnızca =
sözdizimi ile başlatılabileceğine inanıyorum , yani:
int arr[3] = {1,3,4};
Sorular
- Yapmak istediğim şeyi nasıl yapabilirim (yani, bir yapıcıda bir diziyi başlatmak (gövdeye eleman atamak değil)). Hatta mümkün mü?
- C ++ 03 standardı, ctor başlatıcılarda kümeleri (diziler dahil) başlatmakla ilgili özel bir şey söylüyor mu? Veya yukarıdaki kodun geçersizliği diğer bazı kuralların bir sonucu mu?
- C ++ 0x başlatıcı listeleri sorunu çözüyor mu?
PS Lütfen çok iyi bildiğim vektörlerden, boost :: array'lerden ve bunların dizilere üstünlüklerinden bahsetmeyin.