c派生类与继承实验报告.doc
文本预览下载声明
实验2 派生类与继承
实验课程名:面向对象程序设计(C++)
专业班级: 学号: 姓名:
实验时间: 实验地点: 指导教师:
2.1实验目的和要求
(1) 掌握派生类的声明方法和派生类构造函数的定义方法。
(2) 掌握不同继承方式下,基类成员在派生类中的访问属性。
(3) 掌握在继承方式下,构造函数与析构函数的执行顺序与构造规则。
(4) 学习虚基类在解决二义性问题中的作用。
? 二、实验内容
一、构造一个类Geometry及其派生类,该类主要实现关于几何图形的基本操作。对于基类“几何图形”,有求面积、求体积的函数(纯虚函数),其派生类圆和矩形主要有初始化(构造函数),求面积,求周长操作,类圆的派生类圆球和圆柱有求表面积、体积操作。 试在主函数中分别定义圆、圆球、圆柱以及矩形的对象,并调用其成员函数实现其相应操作。
实验代码如下:
#includeiostream
using namespace std;
class Geometry
{
public:
Geometry(){}
~Geometry(){}
double GetArea(){}//求面积函数
double GetPerimeter(){}//求体积函数
double Getcolume(){}//求周长函数
virtual show(){}
};
class Circle:public Geometry
{
public:
Circle(double i)
{
radiums=i;
}
~Circle(){}
double GetArea();
double Getcolume();
double R()
{
return radiums;
}
show();
private:
double radiums;
};
double Circle::GetArea()
{
double S;
S=3.14*radiums*radiums;
return S;
}
double Circle::Getcolume()
{
double L;
L=2*3.14*radiums;
return L;
}
Circle::show()
{
cout圆的面积为:GetArea() 周长为:Getcolume()endl;
}
class Rectangle:public Geometry
{
public:
Rectangle(double i,double j){length=i;wide=j;}
~Rectangle(){}
double GetArea();
double Getcolume();
double L()
{
return length;
}
show();
private:
double length;
double wide;
};
double Rectangle::GetArea()
{
double S;
S=length*wide;
return S;
}
double Rectangle::Getcolume()
{
double L;
L=2*(length+wide);
return L;
}
Rectangle::show()
{
cout矩形的面积为:GetArea() 周长为:Getcolume()endl;
}
class Ball:public Circle
{
public:
Ball(double i):Circle(i){};
~Ball(){};
double GetArea();
double GetPerimeter();
show();
};
double Ball::GetArea()
{
double S;
S=4*3.14*R()*R();
return S;
};
double Ball::GetPerimeter()
{
double V;
V=(4/3)*3.14*R()*R()*R();
return V;
}
Ball::show()
{
cout球的体积为:GetPerimeter() 表面积为:GetArea()endl;
}
class Column:public Circle,public Rectangle
{
public:
Column(double i,double j,double k):Circle(i),Rectangle(j,
显示全部