Girl Class で配列を使う

Girl Object Class のポインタ配列を使います。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. 構造体と同様に Object Class も配列として定義することが出来ます。
    サンプルプログラムで使用する Girl Object Class です。
    名前と年齢と身長と体重がメンバー変数として定義されています。
    女性にとって年齢と体重は機密事項らしく private で定義されています。 (^_^;)
    Disp1() は、年齢と体重をサバを読んで表示する関数です。 (*^_^*)
    Disp2() は、正直に名前と年齢と身長と体重を表示する関数です。
    /*★ Girl Class で配列を使う    前田 稔 ★*/
    #include <iostream>
    using namespace std;
    
    class Girl
    {
      private:
        int     nenrei;
        int     taijyu;
      public:
        char    namae[24];
        int     shintyo;
        Girl(char *Namae, int Nenrei, int Shintyo, int Taijyu)
        {   strcpy(namae,Namae);
            nenrei = Nenrei;
            shintyo = Shintyo;
            taijyu = Taijyu;
        }
        void  Disp1()
        {   cout << "名前=" << namae << "  年齢=" << (int)(nenrei*0.9) <<
            "  身長=" << shintyo << "  体重=" << taijyu*0.85 << endl;
        };
        void  Disp2()
        {   cout << "名前=" << namae << "  年齢=" << nenrei <<
            "  身長=" << shintyo << "  体重=" << taijyu << endl;
        };
    };
    
  2. Object Class の配列を定義して Girl Class を格納します。
    今回は Girl Class のポインタ配列に、直接 new で生成した Class を格納しています。
    Girl    *cls[5] =
    {   new Girl("愛知 真唯子", 22, 155, 56),
        new Girl("茨城 優子", 19, 160, 58),
        new Girl("岩手 あゆみ", 25, 158, 60),
        new Girl("愛媛 和子", 24, 150, 54),
        new Girl("大阪 恵", 13, 148, 43)
    };
    
  3. 次のようにポインタ配列の宣言と Class の生成を分けることも出来ます。
    Girl    *cls[5];
    
        cls[0] = new Girl("愛知 真唯子", 22, 155, 56);
        cls[1] = new Girl("茨城 優子", 19, 160, 58);
        cls[2] = new Girl("岩手 あゆみ", 25, 158, 60);
        cls[3] = new Girl("愛媛 和子", 24, 150, 54);
        cls[4] = new Girl("大阪 恵", 13, 148, 43);
    
  4. main() 関数で Object Class の配列(*cls[5])を印字します。
    new で生成した領域は delete で開放して下さい。
    void  main()
    {
        for(int i=0; i<5; i++)  cls[i]->Disp1();
        cout << "\n本当は!\n";
        for(int i=0; i<5; i++)  cls[i]->Disp2();
        for(int i=0; i<5; i++)  delete cls[i];
    }
    

【演習】

  1. 女性だからと言って、だれでもかれでも年齢と体重を少なく表示したら喜ばれるとは限りません。 (-.-;)
    ある年齢以下の場合(18歳未満?)は、むしろ多く表示した方が喜ばれるかも知れません。
    同様にやせすぎの女性の体重をより少なく表示すると機嫌を損ねるかも知れません。 <(`^´)>
    肥満度の判定方法の一つに BMI(ボディ・マス・インデックス) 指数があり、現在最も良く使われている評価法です。
    BMI指数 = 体重(kg)÷ 身長(m)÷ 身長(m)
    BMI指数 判定
    18.5未満 やせ
    18.5~25 普通
    25~30 肥満度1
    30~35 肥満度2
    35~40 肥満度3
    40以上 肥満度4
    BMI指数が「22」のときが最も病気になりにくいことがわかっています。
    これらの事を考慮して Disp3() 関数を作成して下さい。

超初心者のプログラム入門(C/C++)