2013級C++第14周(春)項目——多態性、虛函數和抽象類 【項目1-動物這樣叫】

/*
* 程序的版權和版本聲明部分
* Copyright (c)2014, 在校學生
* All rightsreserved.
* 文件名稱: 1.cpp
* 作    者:  劉旺
* 完成日期:2014年6月3日
* 版本號: v1.0
* 輸入描述:無
* 問題描述: 根據給出的main()函數和運行結果的提示,設計出相關的各個類,
             注意觀察運行結果,提取出每個類中需要的數據成員,並匹配上需要的成員函數。
*/

#include <iostream>
#include <cstring>
using namespace std ;
class Animal
{
public:
  virtual void cry()
    {
      cout<<"不知哪種動物,讓我如何學叫?"<<endl;
    }
};

class Mouse:public Animal{

public:
    Mouse(char *nam,char y){
         strcpy(name,nam) ;
         x = y ;
    }
    void cry(){
         cout << "我叫"<< name ;
         if(x=='m'){
            cout << ",是一隻男老鼠," ;
         }
         else{
            cout << ",是一隻女老鼠," ;
         }
         cout << "我的叫聲:是吱吱吱" << endl ;

    }
private:
    char name[20] ;
    char x ;
};

class Cat:public Animal{
public:
     Cat(char *nam){
         strcpy(name,nam) ;
     }
     void cry(){
        cout << "我叫" << name << ",是一隻貓,"<< "我的叫聲是喵喵喵" << endl ;
     }
private :
    char name[20] ;
};

class Dog:public Animal{
public:
    Dog(char *nam){
        strcpy(name,nam) ;
    }
    void cry(){
       cout << "我叫" << name << ",我的叫聲是汪汪汪" << endl ;
    }
private:
    char name[20] ;
};

class Giraffe:public Animal{
public:
    Giraffe(char *nam, char x1){
         strcpy(name,nam) ;
         x = x1 ;
    }
    void cry(){
      cout <<"我叫" << name ;
      if(x=='m'){
        cout << ",是男長頸鹿" ;
      }else{
         cout << ",是女長頸鹿" ;
      }
      cout << "我的脖子太長,發不出來聲音來!" ;
    }
private:
     char name[20] ;
     char x ;
};
int main()
{
    Animal *p;
    p = new Animal();
    p->cry();
    Mouse m1("Jerry",'m');
    p=&m1;
    p->cry();
    Mouse m2("Jemmy",'f');
    p=&m2;
    p->cry();
    Cat c1("Tom");
    p=&c1;
    p->cry();
    Dog d1("Droopy");
    p=&d1;
    p->cry();
    Giraffe g1("Gill",'m');
    p=&g1;
    p->cry();
    return 0;
}

溫故而知新。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章