继承与派生实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机科学与技术学院程序设计报告
程序名称:继承与派生(一)
专业:计算机科学与技术
班级:计算机1103班
学号:
姓名:
指导老师:
设计日期:2012年4月13日
实验四继承与派生(一)
[实验目的]
1、掌握类继承与派生关系以及实现方法,理解类的层次结构;
2、掌握派生类构造函数初始化基类成员和对象成员的方法;
3、掌握赋值兼容原则,掌握派生类的复制构造函数的定义。
[实验内容与步骤]
题目:
由例题1中的point类和circle类继续派生出cylinder,求其表面积Area.
源程序代码:
#include
using namespace std;
const double PI=3.14159;
class point //定义point类
{
protected:
double x,y;
public:
point(){x=0;y=0;}
point(double xv,double yv)
{
x=xv;
y=yv;
}
double area(){return 0;}
void show()
{
cout<<"("< } }; class circle:public point //公有继承point类,派生出circle类{ protected: double radius; public: circle(){x=0;y=0;radius=0;} circle(double xv,double yv,double vv):point(xv,yv) { radius=vv; } circle(point p,double vv):point(p) { radius=vv; } circle(circle &cir):point(cir) { radius=cir.radius; } double area() { return PI*radius*radius; } void show() { point::show(); cout<<"radius="< } }; class cylinder:public circle //公有继承circle类,派生出cylinder类{ protected: double high; public: cylinder(){x=0;y=0;radius=0;high=0;} cylinder(double xv,double yv,double vv,double hv):circle(xv,yv,vv) { high=hv; } cylinder(cylinder &cyl):circle(cyl) { high=cyl.high; } double area() { return(2*PI*radius*high+2*circle::area()); } void show() { cout<<"圆柱体信息:"< circle::show(); cout<<"high="< } }; int main() //主函数的定义 { point point1(2,5); circle circle1; circle circle2(1,2,3); circle circle3(point1,4); circle1.show(); circle2.show(); circle3.show(); cylinder cylinder1(5,6,11,20); cylinder1.show(); cout<<"圆柱体面积:"< 实验截图: [实验体会] 1、掌握类的继承与派生的实现方法; 2、定义合适的派生类构造函数,用于初始化基类成员和对象成员; 3、要理解赋值兼容性原则,掌握派生类的复制构造函数的定义方法; 4、在派生类中可以通过基类名调用基类的成员。