您好,欢迎访问三七文档
C++实验一:实验目的和要求1.了解多态性在C++中的体现;2.掌握虚函数的使用;3.了解抽象类。二:题目内容定义一个基类为哺乳动物类mammal,其中有数据成员年龄、重量、品种,有成员函数move()、speak()等,以此表示动物的行为。由这个基类派生出狗、猫、马、猪等哺乳动物,它们都有各自的行为。编程分别使各个动物表现出不同的行为。三:相关知识1:多态性编译时的多态,运行时的多态性。2:虚函数Virtual函数类型函数名(形参表);3:抽象类抽象类是带有纯虚函数的类。纯虚函数的定义:virtual函数类型函数名(参数表)=0;注意:(1)抽象类不能直接建立抽象类对象;(2)抽象类不能用作参数类型、函数返回类型或显示转换的类型;(3)可以说明指向抽象类的指针和引用,此指针可以指向他的派生类,进而实现多态性;四:程序设计思想1:为实现动态联编,首先建立Mammal抽象类,以此抽象类作为基类,派生dog、cat、horse、pig类。其中Mammal类数据员有(姓名)name、(年龄)age、(重量)we。还有成员函数move()、speak(),定义为纯虚函数:virtualvoidmove()=0;virtualvoidspeak()=0;另一个成员函数display(),申明为虚函数virtualvoiddisplay();2:建立各个派生类dog、cat、horse、pig。然后建立构造函数为其初始化。再把move()、speak()定义。3:main()函数中建立指向Mammal的指针数组,并为各派生类初始化。把指针数组分别指向各个派生类。设计一个循环来显示派生类对象的信息。五:程序#includeiostream.h#includestring.hclassMammal{protected:charname[10];intage;intwe;public:virtualvoidmove()=0;virtualvoidspeak()=0;virtualvoiddisplay(){cout姓名:nameendl;cout它的年龄:age岁endl;cout它的重量:wekgendl;}};classdog:publicMammal{public:dog(char*s,inta,intw){strcpy(name,s);age=a;we=w;}voidmove(){cout它的行为;cout吃骨头;cout看门endl;}voidspeak(){cout它的叫声:;coutbarkendl;}voiddisplay(){Mammal::display();speak();move();}};classcat:publicMammal{public:cat(char*s,inta,intw){strcpy(name,s);age=a;we=w;}voidmove(){cout它的行为;cout吃鱼捉老鼠endl;}voidspeak(){cout它的叫声:;coutmewendl;}voiddisplay(){Mammal::display();speak();move();}};classhorse:publicMammal{public:horse(char*s,inta,intw){strcpy(name,s);age=a;we=w;}voidmove(){cout它的行为;cout奔驰吃草endl;}voidspeak(){cout它的叫声:;coutneighendl;}voiddisplay(){Mammal::display();speak();move();}};classpig:publicMammal{public:pig(char*s,inta,intw){strcpy(name,s);age=a;we=w;}voidmove(){cout它的行为;cout吃睡endl;}voidspeak(){cout它的叫声:;coutjruntendl;}voiddisplay(){Mammal::display();speak();move();}};voidmain(){Mammal*p[10];dogt1(CAIRN,3,3),t2(DORE,4,2);catc(CAT,2,4);horseh(HORSE,5,60);pigg(PIG,2,45);p[0]=&t1,p[1]=&t2,p[2]=&c,p[3]=&h,p[4]=&g;cout请选择动物的种类:1狗,2猫,3马,4猪endl;intchioce,k;chars='y';while(s!='n'){coutcinchioce;if(chioce==1){cout请选择品种:0CARIN,1DOREendl;cink;p[k]-display();}elsep[chioce]-display();cout是否继续(y/n):;cins;}}程序运行结果:六:实验总结1:通过实际编程,很好的连接关于纯虚函数和抽象类的关系。2:对于建立基类指针数组,指向派生类,以实现动态的联编,得到多态性的功能。
本文标题:c++的多态性编程
链接地址:https://www.777doc.com/doc-5675894 .html