您所在位置: 网站首页 / 继承与派生的基本概念.docx / 文档详情
继承与派生的基本概念.docx 立即下载
2024-11-08
约3.1千字
约5页
0
49KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

继承与派生的基本概念.docx

继承与派生的基本概念.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

20 金币

下载文档

如果您无法下载资料,请参考说明:

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
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

继承与派生的基本概念

文档大小:49KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用