インスタンス化
クラスからオブジェクトを生成する方法です。定義したクラスはインスタンス化しないと
メモリ領域が確保されませんので、使用できません。
//前回定義した 桃の箱 クラス
class PeachBox {
public:
void Add(int addpeach);
void Del(int delpeach);
void Empty();
int GetTotal();
private:
int m_total;
};
この場合に、桃の箱オブジェクトを生成してみます。
PeachBox myPeachBox; //変数の宣言の仕方と同じですね^^
この myPeachBox がオブジェクトになります。
通常の変数と同様に、好きな名前 がつけられます。
myPeachBoxはPeachBoxクラスのメンバ
Add(), Del(), Empty(), GetTotal(), m_totalを持っています。
また、オブジェクトは複数生成することができます。
PeachBox myPeachBox1;
PeachBox myPeachBox2;
PeachBox myPeachBox3;
:
そして、各オブジェクトごとに別々のデータを格納することができます。
使い方イメージ
myPeachBox1には桃が12個、myPeachBox2には桃が8個あります。
それぞれから2個ずつ取り出し、myPeachBox3に入れます。
このような処理をプログラミングすることになります。^^
メンバ関数の呼び出し
次に、メンバ関数の呼び出し方法を説明します。
同じオブジェクト内のメンバ関数の呼び出し
void PeachBox::Empty()
{
m_total = 0;
}
void PeachBox::Del(int delpeach)
{
m_total -= delpeach;
if (m_total < 0) Empty();
}
同じオブジェクト内のメンバ関数を呼び出すときは、関数名だけの記述でOKです。
ここでは桃の数(m_toal) が 0未満になりそうなときはメンバ関数Empty()を呼び出し
0に設定しています。 桃の数がマイナスだったらおかしいですもんね(^_^;)
他のオブジェクト内のメンバ関数呼び出し
int main()
{
PeachBox myPeachBox1;
PeachBox myPeachBox2;
myPeachBox1.Empty();
myPeachBox2.Add(3);
:
他のオブジェクト内のメンバ関数を呼び出すときは、「.(ピリオド)」を使って
どのオブジェクトのメンバなのかを指定します。
ピリオドを使用するのは、Cの構造体のメンバ参照と同じですね^^
今日の名言
「やろう」と思う強い意志は、これまで行ってきた行動の回数と、そのときの決意の強さによって
決まります。そして行動にかかるたびに、人間の脳は成長します。そうなった時に、本当の信念が
生まれるのです。せっかく決心しても、また美しい気持ちを抱きかけても、実を結ぶことなく立ち消えに
なってしまえば、その損害は機会を失ったときよりはるかに大きいでしょう。その人の将来の目的の
達成が遅れてしまうし、心の冷たい人になってしまうからです。口先だけなら、誰でも強そうなことが
言えます。でも実際にその場で発揮できる勇気は、いつの場合でも十分ではありません。
私たちは、毎日勇気が少しずつ蒸発するに任せているからです。
ヘレン・ケラー
何事にも動じない決断力ほど、気概のある人間を作り出す要因はおそらくあるまい。将来、大人物を
目指す若者や、死後何らかの点で大人物に数えられたいと願う若者は、単に底知れぬ障害を克服
する決心をするだけではダメだ。数知れぬ拒絶と敗北に出会っても、障害を克服してみせる決心が
必要である。
セオドア・ルーズヴェルト
恐怖を克服する決心をしさえすれば、たいていの恐怖は克服できる。恐怖は人の心の中にしか
そんざいしないからだ。
恐ろしくなったら、自分のやるべき仕事のことを一心に考えることだ。すっかり仕事に対する心構えが
できれば、恐怖心は消え去る。
デール・カーネギー