Wenn ich ein struct
wie dieses:Ich möchte anfangen, C++ Inline-Initialisierung zu verwenden, gibt es irgendwelche schlimmen Fälle dafür?
struct A
{
int i;
double d;
const bool b;
};
Und ich tue dies: A a;
dann bekomme ich nicht-Wert initialisiert Objekt, das heißt i
kann 6
sein, d
kann eine andere Sache sein b
true
sein kann. Um dies zu vermeiden, möchte ich Folgendes tun:
struct A
{
int i = 0;
double d = 0.0;
const bool b = false;
};
Gibt es etwas Schlechtes, diesen Ansatz als Faustregel zu verwenden? Vielleicht kennen Sie einen Fall, wenn das nicht wünschenswert ist?
Ich denke, die Erstellung von Standardkonstruktor für Struktur ist relevanter. 'struct A { int i; doppelt d; const bool b; A() {i = 0; d = 0,0; b = falsch; } }; ' –
Es ist nicht das Problem hier, aber Sie sollten die Mitglieder Deklarationen nach Größe bestellen – Pierre
@vidhugangwar: Der Konstruktor macht die Struktur *** Nicht-POD ***, die in einigen Anwendungsfällen unerwünscht sein kann. – Nawaz