C++におけるclassとstructの違い(structのタイプ名は変数名としても使用可能)

1458 ワード

通常、私たちが知っている違いは次のとおりです.
(一)デフォルトの継承権限.明確に指定しない場合、classからの継承はprivate継承処理に従い、structからの継承はpublic継承処理に従う.
(二)メンバーのデフォルトアクセス権.classのメンバーのデフォルトはprivate権限、structのデフォルトはpublic権限です.
この2点を除いて、classとstructは基本的に1つのものです.文法には他の違いはありません.
 
昨日、違いを知らないものを見つけました.
structのタイプ名は変数名としても使用でき、classは不可能であることは明らかであり、classの各タイプの変数定義時に直接クラス名であり、structはstruct+構造体名で変数を定義するため理解できる.
例は次のとおりです.
#include<iostream>

using namespace std;

struct tt{
int a;
int b;
};

int main(){
    struct tt tt;
    tt.a=13;
    tt.b=43;
    cout<<tt.b<<endl;
    return 0;
}