c++的多态性编程_第1页
c++的多态性编程_第2页
c++的多态性编程_第3页
c++的多态性编程_第4页
c++的多态性编程_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上C+实验一:实验目的和要求1. 了解多态性在C+中的体现;2. 掌握虚函数的使用;3. 了解抽象类。二:题目内容定义一个基类为哺乳动物类mammal,其中有数据成员年龄、重量、品种,有成员函数move()、speak()等,以此表示动物的行为。由这个基类派生出狗、猫、马、猪等哺乳动物,它们都有各自的行为。编程分别使各个动物表现出不同的行为。三:相关知识 1:多态性 编译时的多态,运行时的多态性。 2:虚函数 Virtual 函数类型 函数名(形参表); 3: 抽象类 抽象类是带有纯虚函数的类。 纯虚函数的定义: virtual 函数类型 函数名(参数表)=0;注意:(

2、1)抽象类不能直接建立抽象类对象; (2)抽象类不能用作参数类型、函数返回类型或显示转换的类型; (3) 可以说明指向抽象类的指针和引用,此指针可以指向他的派生类,进而实现多态性;四:程序设计思想1:为实现动态联编,首先建立 Mammal抽象类,以此抽象类作为基类,派生dog、cat、horse、pig类。其中Mammal类数据员有(姓名)name 、(年龄)age、(重量)we 。还有成员函数 move()、speak(),定义为纯虚函数:virtual void move()=0;virtual void speak()=0;另一个成员函数display(),申明为虚函数virtual v

3、oid display();2:建立各个派生类dog、cat、horse、pig。然后建立构造函数为其初始化。再把move()、speak()定义。3:main()函数中建立指向Mammal的指针数组,并为各派生类初始化。把指针数组分别指向各个派生类。设计一个循环来显示派生类对象的信息。五:程序#include<iostream.h>#include<string.h>class Mammalprotected:char name10; int age; int we;public:virtual void move()=0;virtual void speak()=0

4、;virtual void display()cout<<"姓名:"<<name<<endl;cout<<"它的年龄:"<<age<<"岁"<<endl;cout<<"它的重量:"<<we<<"kg"<<endl;class dog:public Mammalpublic:dog(char *s,int a,int w)strcpy(name,s);age=a;we

5、=w;void move()cout<<"它的行为"cout<<"吃骨头" cout<<" 看门"<<endl;void speak()cout<<"它的叫声:"cout<<"bark"<<endl;void display()Mammal:display();speak();move();class cat:public Mammalpublic:cat(char *s,int a,int w)strcpy(n

6、ame,s);age=a;we=w;void move()cout<<"它的行为"cout<<"吃鱼"<<" 捉老鼠"<<endl;void speak()cout<<"它的叫声:" cout<<"mew"<<endl;void display() Mammal:display(); speak(); move();class horse:public Mammalpublic:horse(char *s,int

7、 a,int w)strcpy(name,s);age=a;we=w;void move()cout<<"它的行为"cout<<"奔驰"<<" 吃草"<<endl;void speak()cout<<"它的叫声:"cout<<"neigh"<<endl;void display() Mammal:display(); speak(); move();class pig:public Mammalpublic:pi

8、g(char *s,int a,int w)strcpy(name,s);age=a;we=w;void move() cout<<"它的行为" cout<<"吃"<<" 睡"<<endl;void speak() cout<<"它的叫声:" cout<<"jrunt"<<endl;void display() Mammal:display(); speak(); move();void main()Mammal

9、 *p10;dog t1("CAIRN",3,3),t2("DORE",4,2);cat c("CAT",2,4);horse h("HORSE",5,60);pig g("PIG",2,45);p0=&t1,p1=&t2,p2=&c,p3=&h,p4=&g;cout<<"请选择动物的种类:1狗,2猫,3马,4猪"<<endl;int chioce,k;char s='y'while(s!='n') cout<<" cin>>chioce; if(chioce=1) cout<<"请选择品种:0 CARIN,1 DORE"<<endl; cin>>k; pk->display(); else pchioce

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论