ホームページ  >  記事  >  バックエンド開発  >  C/C++ の構造とクラスの違い

C/C++ の構造とクラスの違い

PHPz
PHPz転載
2023-09-17 18:13:021335ブラウズ

C/C++ 结构体与类的区别

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 になります。

Example

#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 サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。