継承と多態性とか

Listing. 1: animalクラス
"class animal"
class animal
{
private:
	int hp_;
	string name_;
public:
	animal();//hp_ 0で初期化
	animal(int _hp, string _name);
	~animal();//空 実装
	virtual void say(); //継承先で書き換え可能
	//"がおー"; <= coutでいいよ; hp_半減
	void SetHp(int _hp);
	int GetHp();
	void SetName(string _name) { name_ = _name; }
	string GetName() { return(name_); }
};
Listing. 2: Dogクラス
"class Dog"
class Dog
	:public animal
{
public:
	Dog();
	Dog(int _hp, string _name);
	~Dog();
	void say() override;//わんと鳴く。
};
Listing. 3: Parrotクラス
"class Parrot
class Parrot
	:public animal
{
public:
	Parrot();
	Parrot(int _hp, string _name);
	~Parrot();
	void say() override; //自分の名前を自己紹介します。
};