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;として宣言する.