11周1--3 以Circle类为直接基类,派生出一个Cylinder(圆柱体)类

来源:互联网 发布:淘宝企业店铺开直通车 编辑:程序博客网 时间:2024/06/05 05:54

问题及代码:

/**Copyright (c) 2016,烟台大学计算机学院*All rights reserved.*文件名称:main.cpp*作    者:李磊涛*完成时间:2016年5月7日*版 本 号: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();}


运行结果:


知识点总结:
通过该程序,强化了我对继承基类和派生类的认识。
学习心得:
要多做题多熟悉一下继承机制定义类族。
0 0
原创粉丝点击