第十一周项目 3 立体类族共有的抽象类

来源:互联网 发布:怎样网络上发布小说 编辑:程序博客网 时间:2024/06/02 10:16
/* * Copyright (c) 2015, 烟台大学计算机学院 * All rights reserved. * 文件名称:main.cpp * 作    者 :韩娟 * 完成日期 :2015年6月17日 * 版 本 号 :v1.0 * * 问题描述 : 设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。 * 输入描述 : 略 * 程序输出 :按要求输出 */#include <iostream>using namespace std;class CSolid{public:    virtual double surfacearea() =0;    virtual double volume() =0;};class CCube:public CSolid{private:    double length;public:    CCube(double len):length(len) {}    double surfacearea()    {        double c;        c=6*length*length;        return c;    }    double volume()    {        double c;        c=length*length*length;        return c;    }};class CBall:public CSolid{private:    double radius;public:    CBall(double r):radius(r){}    double surfacearea()    {        double c;        c=4*3.14*radius*radius;        return c;    }    double volume()    {        double c;        c=3.14*radius*radius*radius*4/3;        return c;    }};class CCylinder:public CSolid{private:    double radius;    double height;public:    CCylinder(double r,double h):radius(r),height(h){}    double surfacearea()    {        double c;    c=2*3.14*radius*radius+2*3.14*radius*height;    return c;    }    double volume()    {         double c;    c=3.14*radius*radius*height;    return c;    }};int main( ){    CSolid *p;    double s,v;    CCube x(30);    cout<<"立方体边长为 30 "<<endl;    p=&x;    s=p->surfacearea( );    v=p->volume( );    cout<<"表面积:"<<s<<endl;    cout<<"体积:"<<v<<endl;    cout<<endl;    CBall y(4.5);    cout<<"球体半径为 4.5 "<<endl;    p=&y;    s=p->surfacearea( );    v=p->volume( );    cout<<"表面积:"<<s<<endl;    cout<<"体积:"<<v<<endl;    cout<<endl;    CCylinder z(10,20);    cout<<"圆柱体底面半径、高分别为 10, 20"<<endl;    p=&z;    s=p->surfacearea( );    v=p->volume( );    cout<<"表面积:"<<s<<endl;    cout<<"体积:"<<v<<endl;    cout<<endl;    return 0;}


知识点总结 :

    和原来的很像,但是加入了指针可以多种指向很方便。

学习心得 :

   指针棒棒的。

0 0
原创粉丝点击