C++のクラスとは #1 超基本編
C++におけるクラスというものについてたまに混乱してしまうので、自分の覚え書きを残します。(間違えてたりしましたらご指摘ください。)
クラスとは、C++における新しい機能の一つ。
オブジェクトの性質・状態や、それに関わる機能をまとめながらプログラミングを作成する、所謂「オブジェクト指向プログラミング」のための概念。
ユーザー定義"型"のひとつである。
クラスにモノの性質や機能をまとめることを一般に、「クラスを宣言する」という。
宣言の方法は以下の通り。
class クラス名 {
アクセス指定子;
変数の宣言;
...
関数の宣言;
...
};
アクセス指定子とは、クラス内のメンバが外部からアクセスできるかどうかを指定する。
この機能の実装により、カプセル化(後述)を実装できる。
アクセス指定子には、「public」・「protected」・「private」の3種類があり、クラス内で指定しない場合は、全て「private」となる。
・public・・・クラスの外部からアクセスできる。
・protected・・・クラス内及び、派生先のクラスからのみアクセスできる
・private・・・クラス内からしかアクセスできない。
クラス内には、変数や関数をまとめて定義する。この変数や関数はメンバ(menber)と呼ばれている。
変数を「データメンバ」、関数を「メンバ関数」と呼ぶ。
クラス内ではメンバ関数の実際の処理についての定義がないので、外側で定義する。
戻り値の型 クラス名::メンバ関数名(引数リスト){
...
}
「::」はスコープ解決演算子(scope resolution operator)という。
これを使うことによって、メンバがどのクラスのメンバ関数であるのかを「::」前で指定する。
ex.
class Car {
public:
int num; //変数(データメンバ)numの宣言
double gas; //変数(データメンバ)gasの宣言
void show(); //関数(メンバ関数)showの宣言
};
//Carクラスメンバ関数の定義
void Car::show(){
cout << "車のメンバーは" << num << "です"。'\n';
}