Heim >Backend-Entwicklung >C++ >Warum unterscheidet „std::is_struct' nicht zwischen Strukturen und Klassen in C?
Warum std::is_struct nicht zwischen Strukturen und Klassen unterscheidet
In C kann es zu Situationen kommen wobei die Unterscheidung zwischen Klassen und Strukturen wichtig ist. Das Typmerkmal std::is_struct bietet diese Unterscheidung jedoch nicht. Wenn Sie verstehen, warum, können Sie Missverständnisse über Klassen und Strukturen klären.
Missverständnis: Strukturen und Klassen sind unterschiedliche Typen
Die Aussage „Es gibt keinen Unterschied zwischen Strukturen und Klassen außer der Sichtbarkeit“ kann Verwirrung stiften. Tatsächlich gibt es in C seit 1985 Klassen und das Schlüsselwort struct dient der Abwärtskompatibilität mit C.
Realität: Alle Typen werden mit class und struct sind Klassen
Das Schlüsselwortstruct wirkt sich nur auf die Standardsichtbarkeit von Mitgliedern und Basen aus. Beide mit class und struct deklarierten Typen sind Klassen.
Fazit
std::is_struct unterscheidet nicht zwischen Strukturen und Klassen, da es in C keine solche Unterscheidung gibt. Mit class und struct deklarierte Klassen sind vom gleichen Typ und haben die gleichen Sichtbarkeitsregeln.
Das obige ist der detaillierte Inhalt vonWarum unterscheidet „std::is_struct' nicht zwischen Strukturen und Klassen in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!