Ich habe eine Frage, die Art von ein bis dieses Follow-up ist:Wie wird die Initialisierung von struct beibehalten, wenn Mitglieder hinzugefügt werden?
Initializing default values in a struct
ich eine Struktur haben, der bereits 17 bools bekam, und eine clear()
Methode, um sie alle zu false
setzt. Es ist ein langfristiges Projekt; Der Code könnte noch Jahre in Gebrauch sein und hinzugefügt werden. Gibt es eine Möglichkeit, alle Member zu initialisieren, die automatisch erweitert werden, so dass jemand, der der Struktur neue Mitglieder hinzufügt, nicht daran denken muss, sie der clear()
Methode hinzuzufügen (außer einem Kommentar, der "bitte nicht vergessen")?
Diese Codebasis ist zu dieser Zeit nicht C++ 11, also glaube ich nicht, dass ich in der Deklaration initialisieren kann.
Der Code ist wie folgt:
typedef struct {
bool doThingA;
bool doThingB;
bool doThingC;
bool doThingD;
// etc for several more bools
void clear() {
doThingA = false;
doThingB = false;
doThingC = false;
doThingD = false;
// etc...
}
} EnableFlags;
Finden Sie die Person, die Ihnen beigebracht hat, 'typedef struct' zu sagen, löschen Sie ihre Telefonnummer, unfriend sie auf Facebook und bewegen Sie mindestens zwei Städte weg von ihnen. –
Warum haben Sie nicht 'array' /' vector' oder 'bitset'? – Jarod42
Sie können stattdessen ein 'std :: array' verwenden, da es eine feste Größe hat und Sie die Größe automatisch in' clear' kennen. –