C++のクラス-簡単な作り方だけ-
クラスの作り方(使い方)は、細かく分けると数種類あります。
今回紹介するのは、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つのファイルの行数が少なくなり、系統のものがファイルでまとめられるので、見やすく、管理しやすくなるのではないかと感じる。



