ホーム » スタッフ » 斉藤徹 » 講義録 » オブジェクト指向 » 仮想関数を用いた課題

2019年6月
« 5月    
 1
2345678
9101112131415
16171819202122
23242526272829
30  

最近の投稿(電子情報)

アーカイブ

カテゴリー

仮想関数を用いた課題

第2回レポート課題

  1. 純粋仮想基底クラスの資料を参考に、複素数データ(直行座標系でも極座標でもよい)の並び替えを行うプログラムを作成せよ。ただし、(1)複素数専用の並び替え関数を作らないこと。(2)複素数用の比較関数を作ること。(3)Object型の並び替え my_sort() を使うこと。
  2. 生物を表す基底を作成し、以下の機能を持つ派生クラスを作成せよ。
    1. 生物クラスは、<名前>を持つ。
    2. 哺乳類クラス(Mammal)に、move() を実行すると、”<名前>は歩く”と表示すること。
    3. 哺乳類クラスに、spawn() を実行すると、”<名前>は子供を産む”と表示すること。
    4. 鳥クラス(Bird)に、move() を実行すると、”<名前>は飛ぶ”と表示すること。
    5. 鳥クラスに、spawn() を実行すると、”<名前>は卵を産む”と表示すること。
    6. 人間クラス(Human)に move() を実行すると、”<名前>は歩く”と表示されること。
    7. 人間クラスに spawn() を実行すると、”<名前>は子供を産む”と表示されること。
    8. にわとりクラス(Chiken)に、move(),spawn() を実行できること。
    9. かものはしクラス(SeaBream)を作るにはどうすればいいか考察せよ。
    class Creature {
    } ;
    class Mammal : ...... {
    } ;
    class Human : ...... {
    } ;
    class Bird : ...... {
    } ;
    class Chiken : ...... {
    } ;
    int main() {
       Mammal tama_cat( "tama" ) ;
       tama_cat.move() ;    // tamaは歩く
       tama_cat.spawn() ;   // tamaは子供を産む
    
       Human  jane_human( "jane" ) ;
       jane_human.move() ;  // janeは歩く
       jane_human.spawn() ; // janeは子供を産む
    
       Bird   tori_bird( "tori" ) ;
       tori_bird.move() ;   // toriは飛ぶ
       tori_bird.spawn() ;  // toriは卵を産む
    
       Chiken piyo_chiken( "PiyoPiyo" ) ;
       piyo_chiken.move() ; // PiyoPiyoは飛ぶ
       piyo_chiken.spawn() ;// PiyoPiyoは卵を産む
    
       SeaBream golduck( "golduck" ) ;
       golduck.move() ;     // golduckは歩く
       golduck.spawn() ;    // golduckは卵を産む
    }