C の構造体と似ているオブジェクトと呼ぶデータ構造がある.
オブジェクトの型は,クラスとして定義する.
C で typedef
と struct
を使って,
構造体を定義し,その型を定義することと同じようなことを,
クラスの定義で行う.
C で,
typedef struct { int a; double b; ...; } 構造体につける型名;とするのと同様なことを, C++ では以下のようにクラスを定義することで行う.
class クラス名 { int a; double b; ... // 非公開メンバの定義 public: ...; // 公開メンバの定義 ...; };
C では,構造体に型名をつけていれば,その構造体の型を持つ変数を,
int x; 型名 y, z;など宣言した.
C++ では, 個々のクラスの (型を持つような) 変数 (オブジェクト,インスタンス) は, クラス名が型の名前と定義されているものとして,
int x; クラス名 y, z;として宣言する.