继承与派生实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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、在派生类中可以通过基类名调用基类的成员。

相关文档
最新文档