//1虚函数实现多态性(20分)
//题目内容:
//定义宠物类Pet,包含虚函数Speak,显示如下信息“How does a pet speak ? ”; 定义公有派生类Cat和Dog,其Speak成员函数分别显示:“miao!miao!”和“wang!wang!”。主函数中定义Pet,Cat和Dog对象,再定义Pet指针变量,分别指向Pet,Cat和Dog对象,并通过指针调用Speak函数,观察并分析输出结果。
//
//输入格式 :
//不需要输入
//
//输出格式:
//各类调用Speak函数输出的结果
//
//输入样例:
//
//
//输出样例:
//How does a pet speak ?
//miao!miao!
//wang!wang!
#include<iostream>
using namespace std;
class Pet
{
public:
Pet()
{}
~Pet()
{}
virtual void Speak()
{
cout << "How does a pet speak?" << endl;
}
private:
};
class Cat:public Pet
{
public:
Cat()
{}
~Cat()
{}
virtual void Speak()
{
cout << "miao!miao!" << endl;
}
private:
};
class Dog:public Pet
{
public:
Dog()
{}
~Dog()
{}
virtual void Speak()
{
cout << "wang!wang!" << endl;
}
private:
};
int main()
{
Pet pet1;
Dog dog1;
Cat cat1;
Pet *point;
point = &pet1;
point->Speak();
point = &cat1;
point->Speak();
point = &dog1;
point->Speak();
system("pause");
return 0;
}
//2抽象宠物类的实现(20分)
//题目内容:
//定义抽象宠物类Pet,其中数据成员包括:名字,年龄和颜色;成员函数包括:构造函数;获取成员数据值的函数;纯虚函数Speak和纯虚函数GetInfo;
//定义Pet的派生类Cat和Dog,其中Speak函数分别显示猫和狗的叫声, 而GetInfo函数分别输出Cat和Dog的属性。主函数中定义Pet指针变量,分别指向动态生成的Cat和Dog对象,并通过指针分别调用GetInfo函数和Speak函数,观察并分析输出结果。
//
//输入格式 :
//猫和狗的信息
//
//输出格式:
//请参考输出样例,严格遵照格式要求输出,建议直接复制样例中的部分文字粘贴进自己的代码中.(冒号是英文冒号,冒号后无空格)
//
//输入样例:
//mikey 2 blue
//benben 1 black
//
//输出样例:
//猫的名字 : mikey
// 猫的年龄 : 2
// 猫的颜色 : blue
// 猫的叫声 : miao!miao!
// 狗的名字 : benben
// 狗的年龄 : 1
// 狗的颜色 : black
// 狗的叫声 : wang!wang!
//
// 时间限制:500ms内存限制:32000kb
#include <iostream>
#include <string.h>
using namespace std;
class Pet
{
protected:
char Name[10];
int Age;
char Color[10];
public:
Pet(char name[],int age,char color[])
{
this->Age = age;
strcpy