C++のクラス-簡単な作り方だけ-

こんにちは、βshortです。
今回は、C++でクラスを作っていきます。

紹介する方法は、私のオススメする、1つの方法だけです。
C++とC言語の違いは、オブジェクト指向を採用しているか否かが大きいと思います。

それでは、クラスの作り方を見ていきましょう。

C++のクラス-簡単な作り方だけ-

クラスの作り方(使い方)は、細かく分けると数種類あります。
今回紹介するのは、3つのファイルに分ける方法です。
私は、この方法を推奨します。

         

  1. メインのファイル
  2. クラスのファイル
  3. クラスのヘッダファイル

参考書

C++の絵本 第2版 C++が好きになる新しい9つの扉
ロベールのC++入門講座
の2冊を使っています。

用意するファイル

  1. メインのファイル
  2. クラスのファイル
  3. クラスのヘッダファイル

以上の3つのファイルに分けて、クラスを扱います。

ここでは、メインのファイルは、main.cpp
クラスのファイルは、Source.cpp
クラスのヘッダファイルは、Source.h

そして、作るクラスは、MikanBoxというクラスです。

メインのファイル

メインのファイル
main.cppでは、クラスが定義してあるヘッダファイルSource.hをインクルードします。
Source.hは、自分で作ったものなので、””で囲みます。

ソースコード

#include<stdio.h>
#include<iostream>
#include "Source.h"

int main() {
	int i;
	//オブジェクト生成(コンストラクタ)
	MikanBox myMikanBox;

	myMikanBox.Add(5);
	myMikanBox.Del(2);
	int c = myMikanBox.GetTotal();
	
	std::cout << c;
	getchar(); //入力待ち
	}
}

クラスのファイル

クラスのファイル
Source.cppには、メンバ関数の中身を定義を書きます。
メンバ関数は、ヘッダファイルのクラス定義されているので、ヘッダファイルSource.hをインクルードします。

メンバ関数の定義は、

//コンストラクタ
クラス名::クラス名(){
    初期化
}

//メンバ関数
型 クラス名::メンバ関数名(引数){
    処理
}

ソースコード

#include "MikanBox.h"

//インラインでヘッダファイルにメソッドを定義

//コンストラクタに戻り値はない
MikanBox::MikanBox() {
	total = 0;
}

void MikanBox::Add(int addmikan) {
	total += addmikan;
}

void MikanBox::Del(int delmikan) {
	total -= delmikan;
	if (total < 0) {
		Empty();
	}
}

void MikanBox::Empty() {
	total = 0;
}

ヘッダファイル

ヘッダファイル
Source.cppには、クラスの定義を書きます。

ソースコード

#ifndef _SOURCE_H_
#define _SOURCE_H_

//クラスの定義
class MikanBox {
public:
	//コンストラクタ
	MikanBox();

	//メンバ関数(メソッド)の定義
	void Add(int addmikan);
	void Del(int delmikan);
	void Empty();
        //インライン関数<-クラス定義内でメンバ関数を定義する
	int GetTotal() {
		return total;
	}

private:
	int total;
};

#endif

まとめ

C++のクラスは、main.cppとclass.cpp、class.hの3つに分けて、管理する
1つのファイルの行数が少なくなり、系統のものがファイルでまとめられるので、見やすく、管理しやすくなるのではないかと感じる。

参考書


C++の絵本 第2版 C++が好きになる新しい9つの扉


ロベールのC++入門講座

おすすめ