/*
*Copyright (c) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:main.cpp
*作 者:郭辉
*完成时间:2016年5月10日
*版 本 号:v1.0
*
*问题描述:再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),,以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main函数完成测试。
*输入描述:无。
*程序输出:体积,表面积。
*/
#include<iostream>
using namespace std;
class point
{
protected:
int x;
int y;
public:
point(int,int);
void show();
double getx(){return x;}
double gety(){return y;}
};
class Circle:public point
{
protected:
double r;
double c;
public:
Circle(double i,double j,double k);
void getr(double);
double area();
void cshow();
};
point::point(int a,int b)
{
x=a;
y=b;
}
void point::show()
{
cout<<x<<" "<<y<<endl;
}
Circle::Circle(double i,double j,double k):point(i,j),r(k){}
void Circle::getr(double i)
{
r=i;
}
double Circle::area()
{
c=3.14*r*r;
return c;
}
void Circle::cshow()
{
cout<<"mianji:"<<c;
}
class Cylinder:public Circle
{
public:
Cylinder (int x=0,int y=0,double r=0,double h=0);
double area();
double volume();
void show();
protected:
double hi;
};
Cylinder::Cylinder(int x,int y,double r,double h) :Circle(x,y,r),hi(h){}
double Cylinder::area()
{
return c*2+hi*2*3.14*r;
}
double Cylinder::volume()
{
return Circle::area()*hi;
}
void Cylinder::show()
{
cout<<"表面积:"<< area()<<" 体积:"<<volume();
}
int main()
{
Cylinder cy1(3,6,5.2,10);
cy1.show();
}
运行结果:
<img src="https://img-blog.csdn.net/20160510213306701" alt="" />