===== 継承 =====
ベースのクラスを引き継いで新しいクラスを作ること。\\
元のクラスを拡張するよ。\\
#include
#include
//コーディング規約:コードを書くためのルール集
//その所属団体で決められてるよ
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();
};
#include "cAnimal.h"
//寝る => "すやすや" と出力
void cAnimal::Sleep()
{
cout << "すやすや" << endl;
}
//食べる => ”もぐもぐ" と出力
void cAnimal::Eat()
{
cout << "もぐもぐ" << endl;
}
//起きる => "起きた!" と出力
void cAnimal::GetUp()
{
cout << "起きた!" << endl;
}
#include "cAnimal.h"
class cDog :
public cAnimal
{
//cAnimalクラスが全部含まれいる
public:
cDog()
:cAnimal("None") //親クラスcAnimalのコントラクタを呼ぶ
{
//SetName("None");
}
cDog(string name)
:cAnimal(name)
{
}
void bark(); //barkは英語で犬が吠える
};
#include "cDog.h"
void cDog::bark() //barkは英語で犬が吠える
{
cout << "わんわんっ!" << endl;
}
#include
//#include "cAnimal.h"
#include "cDog.h"
int main() {
//cAnimal creature("あだす");
//creature.GetUp();
//creature.Eat();
//creature.Sleep();
cDog dog("john");
dog.bark();
}
//5時間目
//親クラスの関数を呼ぶテストをする
//parrotクラス
//なくし、自分の名前を言うよ