ホームページ > バックエンド開発 > C++ > C の構造体に対して `std::is_class` が True を返すのはなぜですか?

C の構造体に対して `std::is_class` が True を返すのはなぜですか?

Barbara Streisand
リリース: 2024-10-27 02:50:30
オリジナル
911 人が閲覧しました

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

C における構造体とクラスの区別

C では、型特性 std::is_class がどちらの場合も true を返すことに多くの人が気づいています。クラスと構造体。このことから、なぜこの特性において 2 つの明確な区別がないのかという疑問が生じます。一般に、C ではクラスと構造体は実質的に同一であると考えられていますが、本当にそうなのでしょうか?

一般的な考えに反して、C は 1985 年以来構造体をサポートしていません。すべての型は、class キーワードまたは struct キーワードのいずれかを使用して宣言されています。基本的にはクラスです。 struct キーワードは、そのようなクラス宣言に適用される固有の可視性ルールとともに、C との下位互換性のためにのみ保存されています。

したがって、C が std::is_class でクラスと構造体を区別しない理由は次のとおりです。それらの間に本質的な違いはありません。言語の観点からは、両方のキーワードを使用して定義されたすべての型は一律にクラスとして認識されます。

以上がC の構造体に対して `std::is_class` が True を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート