クラスとは
例えば、C言語で2次元のベクトルを利用したい場合
- x座標とy座標を記憶するための変数
- 加算や減算の関数定義
- (x, y)という形で出力するための件数
といろいろと用意する必要があります。
そこで、C++で用意されているクラスを利用すればこれらの機能を効率よく実装することができます。
宣言
クラスを利用するためには変数などと同様に宣言をする必要があります。
基本的には以下のような形で宣言します。
class クラス名{
変数や関数などの宣言
};
プログラム内でクラスを利用するためには、int型などの変数と同様にすればよく。
クラス名 変数名;
とすれば利用することができます。
メンバ変数
概要
例えば、2次元ベクトル型クラス「Vector2」を作成する場合はx座標とy座標を保存するための変数を宣言する必要があります。
その場合はクラス内に次のような記述をすればよいです。
class Vector2 { public: double x, y; };
ここで「public:とは?」と思われる方もいると思います。これはアクセス修飾子と呼ばれるものですが、ここではスルーします。
例えばメイン関数内で
Vector2 vec;
と宣言した場合に、xを読み込んだりするときは
vec.x = 3;
などのように「クラス型変数名.メンバ変数名」とすればよいです。
利用例
プログラム
#include <iostream> //クラスの宣言 class Vector2 { public: double x, y; }; int main() { //2次元ベクトル型変数の宣言 Vector2 vec; //x, y座標の設定(関数利用) vec.x = 2; vec.y = 3; //表示 std::cout << "(" << vec.x << ", " << vec.y << ")" << std::endl; }
実行結果
(2, 3)
メンバ関数
利用例
例えばVector2クラス内でx, y座標を設定するための関数を実装すると次のようになります。
#include <iostream> //クラスの宣言 class Vector2 { public: double x, y; //値設定のための関数 void set(const double& _x, const double& _y) { x = _x; y = _y; } }; int main() { //2次元ベクトル型変数の宣言 Vector2 vec; //x, y座標の設定(関数利用) vec.set(2, 3); //表示 std::cout << "(" << vec.x << ", " << vec.y << ")" << std::endl; }
実行結果
(2, 3)