game-engineer:classes:2022:game-programing-1:second-term:11:11-30-25

ベースのクラスを引き継いで新しいクラスを作ること。
元のクラスを拡張するよ。

"cAnimal.h"
#include <iostream>
#include <string>
//コーディング規約:コードを書くためのルール集
//その所属団体で決められてるよ
using std::string;
using std::endl;
using std::cout;
 
class cAnimal
{
private:
	//動物の種名
	string mName_;
	//命名規則:プライベートメンバは後ろに_
public:
	//コンストラクタ インライン定義しちゃった
	cAnimal()
	:mName_("None")
	{ cout << mName_ << "爆誕" << endl; }
	cAnimal(string name)
	:mName_(name)
	{ cout << mName_ << "爆誕" << endl; }
	//デストラクタ
	~cAnimal()
	{ cout << "絶命しました" << endl; }
	//種名のゲッター、セッター
	void SetName(string name){ mName_ = name; }
	string GetName(){ return(mName_); }
	//寝る => "すやすや" と出力
	void Sleep();
	//食べる => ”もぐもぐ" と出力
	void Eat();
	//起きる => "起きた!" と出力
	void GetUp();
};
"cAnimal.cpp"
#include "cAnimal.h"
 
 
	//寝る => "すやすや" と出力
void cAnimal::Sleep()
{
	cout << "すやすや" << endl;
}
	//食べる => ”もぐもぐ" と出力
void cAnimal::Eat()
{
	cout << "もぐもぐ" << endl;
}
	//起きる => "起きた!" と出力
void cAnimal::GetUp()
{
	cout << "起きた!" << endl;
}
"cDog.h"
#include "cAnimal.h"
 
class cDog :
    public cAnimal
{
//cAnimalクラスが全部含まれいる
public:
	cDog()
	:cAnimal("None") //親クラスcAnimalのコントラクタを呼ぶ
	{
		//SetName("None");
	}
	cDog(string name)
	:cAnimal(name)
	{
 
	}
	void bark(); //barkは英語で犬が吠える
};
"cDog.cpp"
#include "cDog.h"
 
void cDog::bark() //barkは英語で犬が吠える
{
	cout << "わんわんっ!" << endl;
}
"theMain.cpp"
#include <iostream>
//#include "cAnimal.h"
#include "cDog.h"
 
int main() {
	//cAnimal creature("あだす");
	//creature.GetUp();
	//creature.Eat();
	//creature.Sleep();
 
	cDog dog("john");
	dog.bark();
 
}
 
//5時間目
//親クラスの関数を呼ぶテストをする
//parrotクラス
//なくし、自分の名前を言うよ
  • game-engineer/classes/2022/game-programing-1/second-term/11/11-30-25.txt
  • 最終更新: 3年前
  • by root