




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
深圳大学实验报告 课程名称:C++程序设计 实验项目名称:继承与派生的基本概念 学院:信息工程学院 专业:通信工程 指导教师:张力 报告人:学号:2011130151班级:2班 实验时间:2013年12月4日 实验报告提交时间:2013年12月30日 教务处制 实验目的与要求: 1.练习实践教程P81范例,定义一个继承与派生关系的类体系,在派生类中访问基类成员。先定义一个点类,包含x,y坐标数据成员,显示函数和计算面积的函数成员;以点为基类派生一个圆类,增加表示半径的数据成员,重载显示和计算面积的函数;定义一个线段类,以两个点类对象作数据成员,定义显示、求面积及长度函数,线段类采用聚合方式,因为有两个端点,不能用派生。编程测试所定义类体系,体会和熟悉继承与派生的基本概念及实现方法,掌握派生类构造函数初始化基类成员和对象成员的方法。 2.实践教程P83编程,多层派生练习,由上面Point类和Circle类继续派生出Cylinder类,计算圆柱的底面积、侧面积、全面积和体积,编写所有完整成员函数,并编写主函数进行验证。方法、步骤: 1.打开VC++,选择file|new菜单,单击project标签,打开其选项卡,选择win32consoleapplication工程类型,在projectname文本框中输入工程名5_1,在location文本框中输入工程路径,单击OK按钮,在弹出的对话框中选择anemptyproject,单击finish按钮。 2.选择file|new菜单,单击files选项卡,选择C++sourcefile,在file文本框中输入文件名5_1.cpp,选中addtoproject复选框,单击OK按钮。 3.打开源文件编辑窗口,按要求编写代码。编写完成后,保存,编译。若编译无错误,则链接,执行。若出现错误,则根据error框显示的错误逐行进行修正。执行过程中,若产生死循环,则应回到源程序找出错误,直至符合要求为止。实验过程及内容: 实验代码: #include<iostream> #include<cmath> usingnamespacestd; #definePI3.14159 classPoint{ protected: doublex,y; public: Point(){x=0;y=0;} Point(doublexv,doubleyv){x=xv;y=yv;} doubleArea(){return0;} voidShow(){ cout<<"x="<<x<<"y="<<y<<endl; } }; classCircle:publicPoint{ friendclassCylinder; doubleradius; public: Circle(){x=0;y=0;radius=0;} Circle(doublexv,doubleyv,doublevv):Point(xv,yv){ radius=vv; } Circle(Circle&cir):Point(cir){ radius=cir.radius; } Circle&operator=(Circle&cir){ this->Point::operator=(cir); radius=cir.radius; return*this; } doubleArea(){ returnPI*radius*radius; } voidShow(){ cout<<"x="<<x<<"y="<<y<<"radius="<<radius<<endl; } }; classCylinder:publicCircle{//Cylinder类 doubleheight; public: Cylinder(){x=0;y=0;radius=0;height=0;} Cylinder(doublexv,doubleyv,doublevv,doublehv):Circle(xv,yv,vv){ height=hv;//调用派生类构造函数 } Cylinder(Cylinder&cyl):Circle(cyl){//赋值兼容规则,cyl可作Circle构造函数实参 height=cyl.height; } Cylinder&operator=(Cylinder&cyl){//重载复制赋值操作符固有标准格式 this->Circle::operator=(cyl); height=cyl.height; return*this; } doubleArea(){//圆柱底面积 returnPI*radius*radius; } doubleL

快乐****蜜蜂
实名认证
内容提供者


最近下载