欢迎来到天天文库
浏览记录
ID:21737822
大小:297.25 KB
页数:27页
时间:2018-10-24
《c派生类与继承实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验2派生类与继承实验课程名:面向对象程序设计(C++)专业班级:学号:姓名:实验时间:实验地点:指导教师:2.1实验目的和要求(1)掌握派生类的声明方法和派生类构造函数的定义方法。(2)掌握不同继承方式下,基类成员在派生类中的访问属性。(3)掌握在继承方式下,构造函数与析构函数的执行顺序与构造规则。(4)学习虚基类在解决二义性问题中的作用。二、实验内容一、构造一个类Geometry及其派生类,该类主要实现关于几何图形的基本揀作。对于基类“儿何图形”,有求面积、求体积的函数(纯虚函数),其派生类圆和矩形主要有初始化(构造函数),求面积,求
2、周长操作,类圆的派生类圆球和圆柱有求表面积、体积操作。试在主函数中分别定义圆、圆球、圆柱以及矩形的对象,并调用其成员函数实现其相应操作。实验代码如下:#includeusingnamespacestd;classGeometrypublic:Geometry(){}〜Geometry(){}doubleGetAreaO{}//求面积函数doubleGetPerimeter(){}//求体积函数doubleGetcolume(){}//求周长函数virtualshow(){}};classCircle:publicGeo
3、metry{public:Circle(doublei){radiums=i;}〜Circle(){}doubleGetAreaO;doubleGetcolume();doubleR(){returnradiums;}show();private:doubleradiums;};doubleCircle::GetAreaO{doubleS;S=3.14*radiums*radiums;returnS;}doubleCircle::Getcolume()doubleL;L=2*3.14木radiums;returnL;}Circle::sh
4、ow()cout<<*的面积为:”〈〈GetArea()〈〈’’〈〈Getcolume()〈〈endl;classRectangle:publicGeometrypublic:Rectangle(doublei,doublej){length=i;wide=j;}〜Rectangle(){}doubleGetArea();doubleGetcolume();doubleL(){returnlength;}show();private:doublelength;doublewide;};doubleRectangle::GetAreaO{d
5、oubleS;S=length*wide;returnS;}doubleRectangle::Getcolume()doubleL;L=2*(length+wide);returnL;}Rectangle::show(){cout〈〈n矩形的面积为:"〈〈GetAreaO〈〈’’〈〈°周长为:,r«Getcolume()<6、how();};doubleBall::GetAreaO{doubleS;S=4*3.14*R()*R();returnS;};doubleBall::GetPerimeter(){doubleV;V=(4/3)*3.14*R()*R()*R();returnV;}Ball::show(){cout«n球的体积为:’’〈〈GetPerimeter0〈〈’’〈〈”表面积为:n<7、ublej,doublek):Circle(i),Rectangle(j,k){};〜Column(){};doubleGetAreaO;doubleGetPerimeter();show();doubleColumn::GetAreaOreturn(2*3.14*R()*R()+2*3.14*R()*L());}doubleColumn::GetPerimeter(){return(3.14*R()*R()*L());}Column::show(){cout<<,r圆柱的体积为:"〈〈GetPerimeter0〈〈’’表面积为:’’〈〈8、GetAreaO<
6、how();};doubleBall::GetAreaO{doubleS;S=4*3.14*R()*R();returnS;};doubleBall::GetPerimeter(){doubleV;V=(4/3)*3.14*R()*R()*R();returnV;}Ball::show(){cout«n球的体积为:’’〈〈GetPerimeter0〈〈’’〈〈”表面积为:n<7、ublej,doublek):Circle(i),Rectangle(j,k){};〜Column(){};doubleGetAreaO;doubleGetPerimeter();show();doubleColumn::GetAreaOreturn(2*3.14*R()*R()+2*3.14*R()*L());}doubleColumn::GetPerimeter(){return(3.14*R()*R()*L());}Column::show(){cout<<,r圆柱的体积为:"〈〈GetPerimeter0〈〈’’表面积为:’’〈〈8、GetAreaO<
7、ublej,doublek):Circle(i),Rectangle(j,k){};〜Column(){};doubleGetAreaO;doubleGetPerimeter();show();doubleColumn::GetAreaOreturn(2*3.14*R()*R()+2*3.14*R()*L());}doubleColumn::GetPerimeter(){return(3.14*R()*R()*L());}Column::show(){cout<<,r圆柱的体积为:"〈〈GetPerimeter0〈〈’’表面积为:’’〈〈
8、GetAreaO<
此文档下载收益归作者所有