/*
*Copyright (c) 2014, 烟台大学计算机学院
*All rights reserved.
*文件名称:week11-4.cpp
*作者:高赞
*完成日期:2015年 5 月 18 日
*版本号:v1.0
*
*
*/
#include <iostream>
using namespace std;
class Point //定义坐标点类
{
public:
Point(double x0=0, double y0=0):x(x0), y(y0) {}
double getx()
{
return x;
}
double gety()
{
return y;
}
protected:
double x,y; //点的横坐标和纵坐标
};
class Circle:public Point
{
public:
Circle(double x0=0,double y0=0,double r0=0):Point(x0,y0),r(r0) {}
double area()
{
return 3.141592*r*r;
}
double getr()
{
return r;
}
private:
double r;
};
class Cylinder:public Circle
{
public:
Cylinder(double x0=0,double y0=0,double r0=0,double h0=0):Circle(x0,y0,r0),h(h0) {}
double volume()
{
return h*area();
}
double geth()
{
return h;
}
friend ostream &operator<<(ostream &put,Cylinder &c)
{
put<<"底面圆心:("<<c.getx()<<","<<c.gety()<<")"<<endl
<<"底面半径:"<<c.getr()<<" 高:"<<c.geth()<<endl
<<"底面积:"<<c.area()<<endl
<<"体积:"<<c.volume()<<endl;
return put;
}
private:
double h;
};
int main()
{
Cylinder a(1,1,2,5);
cout<<a<<endl;
return 0;
}