计科实验六多态的应用参考答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
string kind。
}。
Animal::Animal(string Name,string Kind)
{
name=Name。
kind=Kind。
}
class Cat:public Animal
{
public:
Cat(string Name,string Kind):Animal(Name,Kind)
{ຫໍສະໝຸດ Baidu
float money。
cout<<"请输入你要取款的金额"<<endl。
cin>>money。
balance=balance-money。
cout<<"您的余额为"<<balance<<endl。。
}
void bankbook::inquiry()
{
cout<<"余额为:"<<balance<<endl。
void inquiry()。//查询
}。
bankbook::bankbook(string Accountnumber,string Password,string Id,string Name,float Balance)
{
accountnumber=Accountnumber。
name=Name。password=Password。id=Id。
}
class credit:publicbankbook
{
private:
int money。//表示所能取的最大额度
public:
void withdraw()。
}。
void credit::withdraw()
{
}
3.利用第一题中的各种动物,定义一个动物园类Zoo,经管动物,根据下面的提示编写动物类的相关函数。注意指针的用法。
class Zoo
{
public:
Zoo( int max)。//构造函数,max为最多能圈养的动物数
~Zoo(){delete residents}。//析构函数
int Accept(Animal *d)。//接受动物
void ListAnimals()。//显示动物园所有的动物
private:
int maxanimals。//动物园最多能圈养的动物数
{}
void show()
{
cout<<"猫的种类和名字是:"<<endl。
cout<<kind<<" "<<name<<endl。
}
}。
class Dog:public Animal
{
public:
Dog(string Name,string Kind):Animal(Name,Kind)
{}
void show()
实验六虚函数与多态性
一、实验目的和要求
1.理解静态多态性和动态多态性。
2.掌握运算符重载的基本方法。
3.掌握虚函数的定义与使用方法。
二、实验内容
1.定义一个类Animal,该类中可以存放动物的名字,并有一个Identify函数用于显示动物的种类。定义两个类Cat和Dog,都继承自Animal,并重载Identify函数,不但要显示动物的种类,还要显示动物的名字。定义一个Tiger类,继承自Cat,重载Identify函数,显示动物的种类和名字。
string accountnumber。
string password。
string id。
string name。
float balance。//
public:
bankbook(string,string,string,string,float)。
void deposit()。//存款
void withdraw()。//取款
}
2、模拟定义存折类,并派生出信用卡类;在存折类中提供可以实现开户,存款、取款和查询余额的函数,要求取款金额必须小于余额;信用卡类对取款操作进行修改,允许透支一定金额;在main()函数中定义对象,模拟生活中存折和信用卡的使用过程。
#include<iostream>
using namespace std。
balance=Balance。
}
void bankbook::deposit()
{
float money。
cout<<"请输入你要存款的金额"<<endl。
cin>>money。
balance=balance+money。
cout<<"您的余额为"<<balance<<endl。。
}
void bankbook::withdraw()
int numanimals。//动物园当前圈养的动物数
Animal **residents。//指向动物园全员的动物对象的指针数
}。
#include <iostream>
using namespace std。
#include <string>
class Animal{
public:
Animal(string Name="",string Kind="")。
#include<string>
/*模拟定义存折类,并派生出信用卡类;
在存折类中提供可以实现开户,存款、取款和查询余额的函数,
要求取款金额必须小于余额;
信用卡类对取款操作进行修改,允许透支一定金额;
在main()函数中
定义对象,模拟生活中存折和信用卡的使用过程。*/
class bankbook
{
private:
cout<<kind<<" "<<name<<endl。
}
}。
void main()
{
Animal *p。
Tiger a("华南虎","圆圆")。
p=&a。
p->show()。
Cat b("波斯猫","豆豆")。
p=&b。
p->show()。
Dog c("狼狗","黑熊")。
p=&c。
p->show()。
#include<iostream>
using namespace std。
#include<string>
class Animal
{
public:
Animal(string Name,string Kind)。
virtual void show()=0。
protected:
string name。
{
cout<<"狗的种类和名字是:"<<endl。
cout<<kind<<" "<<name<<endl。
}
}。
class Tiger:public Cat
{
public:
Tiger(string Name,string Kind):Cat(Name,Kind)
{}
void show()
{
cout<<"老虎的种类和名字是:"<<endl。
}。
Animal::Animal(string Name,string Kind)
{
name=Name。
kind=Kind。
}
class Cat:public Animal
{
public:
Cat(string Name,string Kind):Animal(Name,Kind)
{ຫໍສະໝຸດ Baidu
float money。
cout<<"请输入你要取款的金额"<<endl。
cin>>money。
balance=balance-money。
cout<<"您的余额为"<<balance<<endl。。
}
void bankbook::inquiry()
{
cout<<"余额为:"<<balance<<endl。
void inquiry()。//查询
}。
bankbook::bankbook(string Accountnumber,string Password,string Id,string Name,float Balance)
{
accountnumber=Accountnumber。
name=Name。password=Password。id=Id。
}
class credit:publicbankbook
{
private:
int money。//表示所能取的最大额度
public:
void withdraw()。
}。
void credit::withdraw()
{
}
3.利用第一题中的各种动物,定义一个动物园类Zoo,经管动物,根据下面的提示编写动物类的相关函数。注意指针的用法。
class Zoo
{
public:
Zoo( int max)。//构造函数,max为最多能圈养的动物数
~Zoo(){delete residents}。//析构函数
int Accept(Animal *d)。//接受动物
void ListAnimals()。//显示动物园所有的动物
private:
int maxanimals。//动物园最多能圈养的动物数
{}
void show()
{
cout<<"猫的种类和名字是:"<<endl。
cout<<kind<<" "<<name<<endl。
}
}。
class Dog:public Animal
{
public:
Dog(string Name,string Kind):Animal(Name,Kind)
{}
void show()
实验六虚函数与多态性
一、实验目的和要求
1.理解静态多态性和动态多态性。
2.掌握运算符重载的基本方法。
3.掌握虚函数的定义与使用方法。
二、实验内容
1.定义一个类Animal,该类中可以存放动物的名字,并有一个Identify函数用于显示动物的种类。定义两个类Cat和Dog,都继承自Animal,并重载Identify函数,不但要显示动物的种类,还要显示动物的名字。定义一个Tiger类,继承自Cat,重载Identify函数,显示动物的种类和名字。
string accountnumber。
string password。
string id。
string name。
float balance。//
public:
bankbook(string,string,string,string,float)。
void deposit()。//存款
void withdraw()。//取款
}
2、模拟定义存折类,并派生出信用卡类;在存折类中提供可以实现开户,存款、取款和查询余额的函数,要求取款金额必须小于余额;信用卡类对取款操作进行修改,允许透支一定金额;在main()函数中定义对象,模拟生活中存折和信用卡的使用过程。
#include<iostream>
using namespace std。
balance=Balance。
}
void bankbook::deposit()
{
float money。
cout<<"请输入你要存款的金额"<<endl。
cin>>money。
balance=balance+money。
cout<<"您的余额为"<<balance<<endl。。
}
void bankbook::withdraw()
int numanimals。//动物园当前圈养的动物数
Animal **residents。//指向动物园全员的动物对象的指针数
}。
#include <iostream>
using namespace std。
#include <string>
class Animal{
public:
Animal(string Name="",string Kind="")。
#include<string>
/*模拟定义存折类,并派生出信用卡类;
在存折类中提供可以实现开户,存款、取款和查询余额的函数,
要求取款金额必须小于余额;
信用卡类对取款操作进行修改,允许透支一定金额;
在main()函数中
定义对象,模拟生活中存折和信用卡的使用过程。*/
class bankbook
{
private:
cout<<kind<<" "<<name<<endl。
}
}。
void main()
{
Animal *p。
Tiger a("华南虎","圆圆")。
p=&a。
p->show()。
Cat b("波斯猫","豆豆")。
p=&b。
p->show()。
Dog c("狼狗","黑熊")。
p=&c。
p->show()。
#include<iostream>
using namespace std。
#include<string>
class Animal
{
public:
Animal(string Name,string Kind)。
virtual void show()=0。
protected:
string name。
{
cout<<"狗的种类和名字是:"<<endl。
cout<<kind<<" "<<name<<endl。
}
}。
class Tiger:public Cat
{
public:
Tiger(string Name,string Kind):Cat(Name,Kind)
{}
void show()
{
cout<<"老虎的种类和名字是:"<<endl。