6.13~6.14

来源:互联网 发布:删除重复数据sql 编辑:程序博客网 时间:2024/06/07 14:19

6.13

#include<iostream>using namespace std;class Base{public:Base(double h1){h=h1;}virtual void disp()  {}  protected:      double h;  };    class Cuboid :public Base{          public:     Cuboid(double h1, double l1, double w1) :Base(h1)     {         l = l1;         w = w1;      }      virtual void disp()      {          cout << "正方体的体积为:" <<l*w*h<< endl;      }  protected:      double l;                  double w;               };  class Cylinder :public Base {    public:      Cylinder(double h1, double r1) :Base(h1)    {         r = r1;     }    virtual void disp()      {          cout << "圆柱体的体积为:" << 3.14*r*r*h << endl;     }  protected:     double r;                 };    int main()  {     Base *pc;                        Cuboid cu(2.0,2.0,4.0); Cylinder cy(3.0,2.0);     pc = &cu;     pc->disp();     pc = &cy;     pc->disp();     return 0;  }  


6.14

#include<iostream>using namespace std;class container{protected:double radius;public:container(double radius1){radius=radius1;}virtual double surface_area()=0;    virtual double volume()=0;};class cube:public container{public:cube(double radius1):container(radius1){};virtualdouble surface_area(){cout<<"正方体的表面积为:"<<6*radius*radius<<endl;    return 0;}virtualdouble volume(){cout<<"正方体的体积为:"<<radius*radius*radius<<endl;     return 0;}};class sphere:public container{public:sphere(double radius1):container(radius1){}; virtual double surface_area(){cout<<"球的表面积为:"<<4*3.14*radius*radius<<endl;     return 0;} virtual double volume(){cout<<"球的体积为:"<<(4/3)*3.14*radius*radius*radius<<endl;     return 0;}};class cylinder:public container{public:cylinder(double radius1,double h1):container(radius1){h=h1;}  virtual double surface_area(){cout<<"圆柱体的表面积为:"<<2*3.14*radius*(h+radius)<<endl;     return 0;}   virtual double volume(){cout<<"圆柱体的体积为:"<<3.14*radius*radius*h<<endl;     return 0;}private:double h;};int main(){container *p;cube c1(4.0);sphere s1(5.0);cylinder cy(4.0,5.0);p=&c1;p->surface_area();p->volume();p=&s1;p->surface_area();p->volume();p=&cy;p->surface_area();p->volume();return 0;}


0 0