/*
* 程序的版權和版本聲明部分
* 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;
}
溫故而知新。