コンテンツにスキップ

最終更新:2026-10-15

C++ struct と class の違い

著者について:

個人公式アカウント(WeChat):

C++ struct と class の違い詳解 | C++那些事

CとC++におけるstructの内容については:struct那些事を参照

一般的に言えば、struct はデータ構造の実装体と見るのが適切であり、class はオブジェクトの実装体と見るのが適切です。

違い:

最も本質的な違いは、デフォルトのアクセス制御です

デフォルトの継承時のアクセス権限。struct は public で、class は private です。

struct はデータ構造の実装体として、デフォルトのデータアクセス制御は public ですが、class はオブジェクトの実装体として、デフォルトのメンバ変数のアクセス制御は private です。

よくある質問

struct と class の唯一の違いは?

デフォルトのアクセス権と継承方法です。struct は public、class は private。それ以外は C++ では完全に等価です。

struct にコンストラクタや仮想関数は持てる?

持てます。C++ の struct はクラスであり、コンストラクタ・仮想関数・テンプレートなど全機能を利用できます。

いつ struct を使うべき?

慣習では、不変条件のない単純なデータのまとまりには struct、カプセル化や不変条件が出たら class を使います。

関連トピック

コメント