Ich bin bewusst, dass Struktur und Klasse in C++ sehr ähnlich sind und Struktur Mitglieder standardmäßig öffentlichen Zugriff haben, während die Mitglieder der Klasse privaten Zugriff und so weiter haben .. etc.Initialisieren von Klasseninstanz mit geschweiften Klammern
Da jedoch struct Instanzen wie folgt initialisiert werden kann:
struct MyStruct{
int a;
int b;
int c;
};
MyStruct s1 = {1, 2, 3}; //a=1, b=2, c=3
MyStruct s2 = {}; //a=0, b=0, c=0
Ist es sicher, das gleiche für Klassen in C++ zu tun? Zum Beispiel:
class MyClass{
int a;
int b;
int c;
};
MyClass c1 = {1, 2, 3}; //a=1, b=2, c=3
MyClass c2 = {}; //a=0, b=0, c=0
Frage: Ich bin mir bewusst, wir Konstruktor verwenden können (s), ist es Fallstricke sollte ich beachten, wenn ich Klasseninstanz wie struct Instanzen initialisiert werden? Ist dies eine sichere Operation, wenn ich diesen Ansatz verwende, um die Datenelemente auf ihre Standardwerte (z. B. 0 für int und null für Zeiger) zu initialisieren?
In C++ gibt es keinen Unterschied zwischen einer Klasse und einer Struktur außer dem Standard-Zugriffsspezifizierer. – NathanOliver
@NathanOliver So kann ich annehmen, dass es sicher ist, Klasseninstanzen mit den geschweiften Klammern zu initialisieren? – user3437460