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
関連参照