#include<iostream>
using namespace std;
class Solid
{
public:
virtual float area() const=0;
virtual float volume() const=0;
};
class Cube:public Solid
{
public:
virtual float area() const
{
return 6*lon*lon;
}
virtual float volume() const
{
return lon*lon*lon;
}
Cube(double l):lon(l){}
protected:
double lon;
};
class Ball:public Solid
{
public:
virtual float area() const
{
return 4*3.14*r*r;
}
virtual float volume() const
{
return (4/3)*3.14*r*r*r;
}
Ball(double r1):r(r1){}
protected:
double r;
};
class Cylinder:public Solid
{
public:
virtual float area() const
{
return 2*3.14*R*R+2*3.14*R*H;
}
virtual float volume() const
{
return 3.14*R*R*R;
}
Cylinder(double r,double h):R(r),H(h){}
protected:
double R,H;
};
int main()
{
Cube C1(4);
Ball B1(3);
Cylinder Cy1(1,5);
Solid *p;
p=&C1;
cout<<"c1面积:"<<p->area()<<' '<<"c1体积:"<<p->volume()<<endl;
p=&B1;
cout<<"B1面积:"<<p->area()<<' '<<"B1体积:"<<p->volume()<<endl;
p=&Cy1;
cout<<"Cy1面积:"<<p->area()<<' '<<"Cy1体积:"<<p->volume()<<endl;
return 0;
}
感悟:自己做出来的就是爽啊。
一定要理解课本上的概念,不要死记,灵活运用
几何体面积与体积计算
本文通过抽象基类Solid定义了几何体的通用接口,并实现了立方体(Cube)、球体(Ball)和圆柱体(Cylinder)的具体计算方法。使用多态特性,通过指向基类的指针调用不同派生类的成员函数,展示了如何统一处理不同类型的几何体。
540

被折叠的 条评论
为什么被折叠?



