Varsayılan olarak C yapı 0 başlatılmış üyesi?
struct
Bu var:
struct Snapshot
{
double x;
int y ;
};
x
y
0 olmasını istiyorum. Varsayılan olarak 0 olacak ya da yapmak zorundayım:
Snapshot s= {0,0};
Yapısı sıfır diğer yolları nedir?
CEVAP
Eğer yapı başlatılamıyor musun diye boş değildir.
Snapshot s; // receives no initialization
Snapshot s = {}; // value initializes all members
İkinci tüm üyeleri, ilk belirtilmemiş değerlerinde sıfır bırakır yapar. Özyinelemeli olduğunu unutmayın:
struct Parent { Snapshot s; };
Parent p; // receives no initialization
Parent p = {}; // value initializes all members
İkinci p.s.{x,y}
sıfır yapacak. Yapamıyorsanız yapı kurucular varsa bu toplama başlatıcı listeleri kullanın. Eğer durum buysa, o kurucular için uygun initalization eklemek gerekir
struct Snapshot {
int x;
double y;
Snapshot():x(0),y(0) { }
// other ctors / functions...
};
0 için her iki x ve y başlatılacaktır. Not kullanabileceğiniz x(), y()
başlatılamıyor onları hiçe sayarak kendi türü: Bu değer başlatma ve genellikle verimleri uygun bir başlangıç değeri (int için 0, 0.0 çift, arama varsayılan oluşturucu için kullanıcı tanımlı tipler var kullanıcı ilan kurucular, ...). Bu özellikle eğer bir yapı şablonu ise önemlidir.
C bir Yapı olarak varsayılan değerler...
Ürün Lezzet Android Studio inşa varsay...
Neden varsayılan olarak't işaretç...
Nasıl jQuery UI Akordeon varsayılan ol...
Neden C varsayılan yapı, sabit bir nes...