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

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

C++ クラスの利用③(ヘッダーファイルの作成)





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

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




概要

今回はクラスの定義をmain関数などと分割して記述する方法を紹介します。




メリット

前回まではクラスの定義をmain関数と同じファイルに記述していました。
しかし、クラスの定義は別ファイルにヘッダーとして記述することができます。これにより、

  • 他のヘッダーファイルからも利用できる。
  • 見やすくなる

等のメリットがあります。




方法

まず、「vector2.h」というファイルを作成して前回までに作成したクラス「Vector2」の中身を記述します。
ただし、このヘッダーファイルはmain関数を記述するファイルと同じ階層に作成しています

#pragma once

//クラスの宣言
class Vector2 {
public:
    double x, y;

    //デフォルトコンストラクタ
    Vector2() {
        x = 0;
        y = 0;
    }

    Vector2(const double& _x, const double& _y) {
        set(_x, _y);
    }

    //値設定のための関数
    void set(const double& _x, const double& _y) {
        x = _x;
        y = _y;
    }
};


続いて、main関数を記述したファイル「main.cpp」では

#include "vector2.h"

とすることで利用することができます。




動作確認

#include <iostream>
#include "vector2.h"

int main() {
    Vector2 vec2(2, 3);

    //表示
    std::cout << "(" << vec2.x << ", " << vec2.y << ")" << std::endl;
}


実行結果

(2, 3)