欢迎来到天天文库
浏览记录
ID:56121611
大小:148.50 KB
页数:28页
时间:2020-06-20
《c++派生类与继承实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验2派生类与继承实验课程名:面向对象程序设计(C++)专业班级:学号:姓名:实验时间:实验地点:指导教师:2.1实验目的和要求(1)掌握派生类的声明方法和派生类构造函数的定义方法。(2)掌握不同继承方式下,基类成员在派生类中的访问属性。(3)掌握在继承方式下,构造函数与析构函数的执行顺序与构造规则。(4)学习虚基类在解决二义性问题中的作用。 二、实验内容一、构造一个类Geometry及其派生类,该类主要实现关于几何图形的基本操作。对于基类“几何图形”,有求面积、求体积的函数(纯虚函数),其派生类圆和矩形主要有初始化(构造函数),求面积,求周长操
2、作,类圆的派生类圆球和圆柱有求表面积、体积操作。试在主函数中分别定义圆、圆球、圆柱以及矩形的对象,并调用其成员函数实现其相应操作。CircleradiumsCircle()~Circle()BallBall()~Ball()GeometryGeometry()~Geometry()GetArea()GetPerimeter()Getcolume()show()ColumnColumn()~Column()RectangleRectangle()~Rectangle()实验代码如下:#includeusingnamespaces
3、td;classGeometry{public:Geometry(){}~Geometry(){}doubleGetArea(){}//求面积函数doubleGetPerimeter(){}//求体积函数doubleGetcolume(){}//求周长函数virtualshow(){}};classCircle:publicGeometry{public:Circle(doublei){radiums=i;}~Circle(){}doubleGetArea();doubleGetcolume();doubleR(){returnradiums;}
4、show();private:doubleradiums;};doubleCircle::GetArea(){doubleS;S=3.14*radiums*radiums;returnS;}doubleCircle::Getcolume(){doubleL;L=2*3.14*radiums;returnL;}Circle::show(){cout<<"圆的面积为:"<5、oublei,doublej){length=i;wide=j;}~Rectangle(){}doubleGetArea();doubleGetcolume();doubleL(){returnlength;}show();private:doublelength;doublewide;};doubleRectangle::GetArea(){doubleS;S=length*wide;returnS;}doubleRectangle::Getcolume(){doubleL;L=2*(length+wide);returnL;}Rectangl6、e::show(){cout<<"矩形的面积为:"<7、4/3)*3.14*R()*R()*R();returnV;}Ball::show(){cout<<"球的体积为:"<8、eColumn::GetArea(){return(2*3.14*R()*R()+2*3.14*R()*L());}doubleColu
5、oublei,doublej){length=i;wide=j;}~Rectangle(){}doubleGetArea();doubleGetcolume();doubleL(){returnlength;}show();private:doublelength;doublewide;};doubleRectangle::GetArea(){doubleS;S=length*wide;returnS;}doubleRectangle::Getcolume(){doubleL;L=2*(length+wide);returnL;}Rectangl
6、e::show(){cout<<"矩形的面积为:"<7、4/3)*3.14*R()*R()*R();returnV;}Ball::show(){cout<<"球的体积为:"<8、eColumn::GetArea(){return(2*3.14*R()*R()+2*3.14*R()*L());}doubleColu
7、4/3)*3.14*R()*R()*R();returnV;}Ball::show(){cout<<"球的体积为:"<8、eColumn::GetArea(){return(2*3.14*R()*R()+2*3.14*R()*L());}doubleColu
8、eColumn::GetArea(){return(2*3.14*R()*R()+2*3.14*R()*L());}doubleColu
此文档下载收益归作者所有