主な違い: C ++は主にオブジェクトに焦点を合わせているオブジェクト指向言語です。 C ++のクラスは、単一の構造にカプセル化された関連変数と関数の集まりとして定義できます。 クラスのインスタンスはオブジェクトと呼ばれます。 C ++の構造体は、独自の操作を持つユーザー定義データ型と呼ぶことができます。 C言語とは異なり、どちらもC ++では非常に似ています。 それらの間に存在する主な違いはアクセス修飾子に関するものです。 クラスのメンバーはデフォルトではプライベートですが、構造体のメンバーはデフォルトではパブリックです。
C ++のクラスは、C言語で使用される構造の単なる拡張です。 これはユーザー定義のデータ型です。 実際には、データとそれに関連する機能を1つのユニットにまとめています。 C言語の構造とクラスは、構造に比べて機能や機能が制限されているため、クラスとは大きく異なります。 一方、C ++の構造とクラスは非常に似ています。 主な違いは、デフォルトではクラスのすべてのメンバがプライベートであるのに対し、デフォルトでは構造のすべてのメンバがパブリックであるという事実に起因しています。
C ++におけるクラスと構造の比較
クラス | 構造 | |
定義 | C ++のクラスは、単一の構造にカプセル化された関連変数と関数の集まりとして定義できます。 | 構造体は、独自の操作を持つユーザー定義データ型と呼ぶことができます。 |
宣言のためのキーワード | クラス | 構造体 |
デフォルトのアクセス指定子 | 非公開 | パブリック |
例 | クラスマイクラス { プライベート: intデータ。 パブリック: myclass(int data_): データ(data_) {} 仮想ボイドfoo()= 0。 virtual〜class() {} ; | struct myclass { プライベート: intデータ。 パブリック: myclass(int data_): データ(data_) {} 仮想ボイドfoo()= 0。 virtual〜class() {} ; |
目的 | データ抽象化とさらなる継承 | 一般に、データのグループ化 |
タイプ | 参照 | 値 |
使用法 | 一般に大量のデータに使用されます。 | 通常、少量のデータに使用されます。 |