クラスと構造体

C++C++ のクラスは、C 言語の構造体の拡張機能です。 構造体とクラスの唯一の相違点は、デフォルトによるアクセスが、構造体メ ンバーは public アクセスで、クラス・メンバーは private アクセスである ことです。したがって、キーワードの class または struct を使用して、同等のクラスを定義できます。

例えば、以下のコードにおいて、クラス X は、構造体 Y と同等です。

class X {
 
  // private by default
  int a;
 
public:
 
  // public member function
  int f() { return a = 5; };
};
 
struct Y {
 
  // public by default
  int f() { return a = 5; };
 
private:
 
  // private data member
  int a;
};

構造体を定義してから、キーワード class を使用して、 その構造体のオブジェクトを宣言すると、 デフォルトによりそのオブジェクトのメンバーは、public のままです。 以下の例において、obj_X が、クラス・キー class を使用する詳述型指定子の使用を宣言していますが、main() は、obj_X のメンバーへのアクセスを行います。

#include <iostream>
using namespace std;
 
struct X {
 int a;
 int b;
};
 
class X obj_X;
 
int main() {
  obj_X.a = 0;
  obj_X.b = 1;
  cout << "Here are a and b: " << obj_X.a << " " << obj_X.b << endl;
}

次に、上記の例の出力を示します。

Here are a and b: 0 1

関連参照

IBM Copyright 2003