Heim >Backend-Entwicklung >C++ >Warum unterscheidet „std::is_struct' nicht zwischen Strukturen und Klassen in C?

Warum unterscheidet „std::is_struct' nicht zwischen Strukturen und Klassen in C?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-26 14:56:31573Durchsuche

Why Doesn't `std::is_struct` Distinguish Between Structs and Classes 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üsselwort

struct 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn