C では、構造体とクラスは基本的に同じです。しかし、微妙な違いがいくつかあります。これらの違いを以下に示します。
デフォルトでは、クラスのメンバーはプライベートですが、構造体のメンバーはパブリックです。これら 2 つのコードを見て、違いを見てみましょう。
#include <iostream> using namespace std; class my_class { int x = 10; }; int main() { my_class my_ob; cout << my_ob.x; }
This program will not be compiled. It will generate compile time error for the private data member.
#include <iostream> using namespace std; struct my_struct { int x = 10; }; int main() { my_struct my_ob; cout << my_ob.x; }
10
クラスまたは構造体から構造体を派生する場合、その基本クラスのデフォルトのアクセス指定子は public ですが、クラスを派生する場合、デフォルトのアクセス指定子は private になります。
#include <iostream> using namespace std; class my_base_class { public: int x = 10; }; class my_derived_class : my_base_class { }; int main() { my_derived_class d; cout << d.x; }
This program will not be compiled. It will generate compile time error that the variable x of the base class is inaccessible
#include <iostream> using namespace std; class my_base_class { public: int x = 10; }; struct my_derived_struct : my_base_class { }; int main() { my_derived_struct d; cout << d.x; }
10
以上がC/C++ の構造とクラスの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。