ひとつのクラスから、いろんなオブジェクト、インスタンスを作るとどうなるか
1.C++の特徴
①変数の宣言する場所
使う直前に宣言してもよい
int a=0;
printf("%d\n",a);
int b=1;
printf(%d\n",b);
②関数で、同じ名前の関数がいくつもある。
ただし、すべて引数が異なる。
オーバーロードといいます
③クラスが使える
クラスとは、ひとつのプログラムです
その中に、変数と関数をいれることができます
ひとつの、機能をもったプログラムです
例)猫クラスがあったとします
猫の特徴をまとめた、変数(鳴き声とか好きなもの、こととか)
猫の動作をまとめた関数がはいってたとします
このクラスからmikeとpotiをつくると
CNeko mike;
CNeko poti;
mike.Naku();//みゃお
poti.Naku();//みゃお
となります
別途犬用の鳴き声をつくってやらないといけません。
このとき、mikeとpotiをオブジェクトといいます
④クラスはオブジェクト化しないと使えない
(インスタンス化しないと使えない)
CNeko mike; //mikeオブジェクト
CNeko* mike=new CNeko();//猫インスタンス
mikeポインターを作ります
⑤インスタンスは、最後に消します
delete mike;
消さないとメモリーにmikeが残ります
100回プログラムを実行するとメモリーになんと
100匹のmikeだらけになります。(みゃおみゃおみゃお...あー大変(笑))
2.簡単なクラスについて
CNekoから
CMikeを作ると
class CMike : public CNeko{
//何もない
}
CMike mike;
mike.Naku();//みゃお
3.例)猫クラスCNekoがあったとします
CNekoからCMikeをつくる
class CMike : public CNeko{
}
CNekoからCPotiをつくる
class CPoti : public CNeko{
public:
CPoti(){
strcpy_s(koe,20,”わんわん");
}
}
話を簡単にするために、シンプルに
書きました。
ここからオブジェクトを作ります
CMike mike;
mike.Naku();//みゃお
CPoti poti;
poti.Naku();//わんわん
となります。
4.今回のあたらしいCarProjectは、
CPlayer,CJumpRamp,CCastleが同じ
発想でつくっています
CCastleをみてください
もとのPlayerクラスは、CObjectクラス
に名前を変えています
少し一般的な関数内容になっています