ひとつのクラスから、いろんなオブジェクト、インスタンスを作るとどうなるか

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クラス

  に名前を変えています

  少し一般的な関数内容になっています