今回はクラスとメンバ関数の定義方法をご紹介いたします^^
クラスを定義するとは、クラスの内容を記述することです。
ここでは 「ももの箱」 を例に定義をしてみます。
class PeachBox { //クラス名
public:
void Add(int addpeach); //Add, Del, Empty, GetTotalの4つはメンバ関数
void Del(int delpeach);
void Empty();
int GetTotal();
private:
int m_total; //メンバ変数 であることを明示するために m_ をつけること分かりやすい
};
ももの箱クラス(PeachBox)は、箱の中に入っているももの数を管理するクラスです。
メンバ関数GetTotal()で、箱の中にあるももの数を求めることができます。
メンバ関数を定義してみる
メンバ関数の定義の仕方は、普通に使う関数とほぼ同じようにできます。
違いと言えば、関数名の前に「クラス名::」をつけて、どのクラスのメンバ関数であるかを
記述することです。 以前少し学習した名前空間のことを思い出してください。^^
void PeachBox::Add(int addpeach) //クラス名:: この場合はPeachBox::がついています
{
m_total += addpeach; //メンバ変数に追加する桃の数を加える
}
メンバ関数の名前は、そのクラスの中だけで有効です。
クラスの外からは見えないように隠蔽(カプセル化という)されているのです(^_^.)
そのため、クラスの外側(普通の関数)や別のクラスでは同じ名前の関数を定義することができます。
メンバ関数はクラスの中で定義することもできます。
その場合は、クラスの定義をしているところで関数の中身を記述します。
class PeachBox{
public:
void Add(int addpeach);
void Del(int dellpeach);
void Empty();
int GetTotal() { //クラスの宣言と同時に中身を定義
return m_total;
}
private:
int m_total;
}
このように、クラスの中で関数の中身を定義した関数を、インライン関数と呼びます。
今日の名言
自分の欠点ばかり気になりだしたら、そんな劣等感を直してくれる人間はこの世に一人しかいない。
つまりあなた自身だ。直し方は次の言葉に尽きる。-「おのれ自身のことを忘れよ」恥ずかしくなって
きたり、気後れしたり、自分が気になりだしたら、すぐその場で何か他のことを考えることだ。人と語り合う際には、話題以外のことは一切念頭には置かない。相手がこちらのことをどう思っていようが、
こちらの話しぶりをどう思っていようが、決して気にしないことだ。自分のことは忘れて、
先を続けることだ。
デール・カーネギー
財産を失っても痛手は少ない。だが、健康を損なうと痛手は大きい。
勇気を失うと、それこそ取り返しがつかない。
作者不明
恐怖の数のほうが、危険の数より常に多い。
セネカ