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つのファイルの行数が少なくなり、系統のものがファイルでまとめられるので、見やすく、管理しやすくなるのではないかと感じる。