c++的多态性编程.doc

上传人:scccc 文档编号:12048621 上传时间:2021-12-01 格式:DOC 页数:8 大小:71.50KB
返回 下载 相关 举报
c++的多态性编程.doc_第1页
第1页 / 共8页
c++的多态性编程.doc_第2页
第2页 / 共8页
c++的多态性编程.doc_第3页
第3页 / 共8页
c++的多态性编程.doc_第4页
第4页 / 共8页
c++的多态性编程.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《c++的多态性编程.doc》由会员分享,可在线阅读,更多相关《c++的多态性编程.doc(8页珍藏版)》请在三一文库上搜索。

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

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

3、ay();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;virt

4、ual 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=w;vo

5、id 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(name,s

6、);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 Mammalpubli

8、c:pig(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()Ma

9、mmal *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!

10、='n') cout<<" cin>>chioce; if(chioce=1)推荐精选 cout<<"请选择品种:0 CARIN,1 DORE"<<endl; cin>>k; pk->display(); else pchioce->display(); cout<<"是否继续(y/n):" cin>>s;程序运行结果:六:实验总结1:通过实际编程,很好的连接关于纯虚函数和抽象类的关系。2:对于建立基类指针数组,指向派生类,以实现动态的联编,得到多态性的功能。 (注:可编辑下载,若有不当之处,请指正,谢谢!) 推荐精选

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1