Heim >Backend-Entwicklung >C++ >Warum gibt „std::is_class' für Strukturen in C „True' zurück?

Warum gibt „std::is_class' für Strukturen in C „True' zurück?

Barbara Streisand
Barbara StreisandOriginal
2024-10-27 02:50:30895Durchsuche

Why Does `std::is_class` Return True for Structs in C  ?

Die Unterscheidung zwischen Strukturen und Klassen in C

In C ist vielen aufgefallen, dass das Typmerkmal std::is_class für beide true zurückgibt Klassen und Strukturen. Dies wirft die Frage auf, warum es bei diesem Merkmal keine klare Unterscheidung zwischen beiden gibt. Es wird allgemein angenommen, dass Klassen und Strukturen in C praktisch identisch sind, aber ist das wirklich der Fall?

Entgegen der landläufigen Meinung unterstützt C seit 1985 keine Strukturen mehr. Jeder Typ wird entweder mit dem Schlüsselwort class oder struct deklariert ist grundsätzlich eine Klasse. Das Schlüsselwort struct wurde zusammen mit den eindeutigen Sichtbarkeitsregeln, die auf solche Klassendeklarationen angewendet werden, ausschließlich aus Gründen der Abwärtskompatibilität mit C beibehalten.

Der Grund, warum C in std::is_class nicht zwischen Klassen und Strukturen unterscheidet, liegt darin, dass Es gibt keinen inhärenten Unterschied zwischen ihnen. Aus sprachlicher Sicht werden alle mit beiden Schlüsselwörtern definierten Typen einheitlich als Klassen erkannt.

Das obige ist der detaillierte Inhalt vonWarum gibt „std::is_class' für Strukturen in C „True' zurück?. 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