【C++】classとstructの違い
C++にはメンバを持てる存在が3つ存在します。それはclassとstructとunionです。unionはちょっと特殊なので置いておいて、classとstructにはどんな違いがあるのでしょうか。
違いはデフォルトのアクセス指定子のみ
実はclassとstructの違いはデフォルトのアクセス指定がprivateかpublicかだけです。他は全く同じです。
具体的には以下のアクセス指定子です。
class Base{}; class A : Base // アクセス指定をしていないので private継承 { int m_Value; // アクセス指定をしていないので private }; struct B : Base // アクセス指定をしていないので public継承 { int m_Value; // アクセス指定をしていないので public };
classとstructの使い分け
オブジェクト指向におけるクラスとして定義したい場合にclassを。データを格納するだけの構造体として定義したい場合にstructを使うのが一般的だと思います。ですが、ちょっとしたクラスでpublicを指定するのが面倒な場合はstructを使用するのもいいんじゃないかなと思います。