#include <iostream.h>
#include <stdio.h>
//「小銭入れクラス」
class kozeni_ire
{
private:
int money;
public:
kozeni_ire(int x){money=x;}
int GetMonery(){return money;}
virtual void Show();
};
void kozeni_ire::Show()
{
cout<<"財布の小銭入れです。"<<endl;
cout<<"現在所持している硬貨の枚数は500玉"<<money<<"個です。"<<endl;
}
//「小銭入れ」の派生クラスの「札束入れ」
class satutaba_ire:public kozeni_ire
{
public:
//コンストラクタ(kozeni_ireのコンストラクタに[x]を代入)
satutaba_ire(int x):kozeni_ire(x){}
//「小銭入れ」と同名のメンバ関数
void Show();
};
void satutaba_ire::Show()
{
cout<<"財布の札束入れです。"<<endl;
cout<<"現在所持している札束の枚数は一万円冊"<<GetMonery()<<"枚です。"<<endl;
}
void main()
{
kozeni_ire A(10); //「小銭入れクラス」の実体
satutaba_ire B(3); //「札束入れクラス」の実体
kozeni_ire *P; //「小銭入れクラス」のポインタ
※ココがミソ
//「小銭入れクラス」のアドレスをP(小銭入れクラスのポインタ)に渡す
P=&A;
P->Show();
//「札束入れクラス」のアドレスをP(小銭入れクラスのポインタ)に渡す
P=&B;
P->Show();
getchar();
} |