/* *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="http://img.blog.csdn.net/20160510213306701" alt="" />