KMDのプログラミングメモノート

主にUnity(C#)を中心としたプログラムの備忘録

C++ クラスの利用①(宣言、メンバ変数、メンバ関数)





「クラスの利用」シリーズ

1. 宣言、メンバ変数、メンバ関数(本記事)
2. コンストラクタ
3. ヘッダーファイルの作成
4. メンバ関数のクラス外記述
5. std::coutでの表示




クラスとは

例えば、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)