#include <iostream>
using namespace std;
const double pi = 3.1415926;
class CSolid
{
public:
virtual double area() const = 0;
virtual double volume() const = 0;
};
class CCube:public CSolid
{
public:
CCube(double l):len(l){}
~CCube();
double area() const;
double volume() const;
private:
double len;
};
class CBall:public CSolid
{
public:
CBall(double r):rang(r){}
~CBall();
double area() const;
double volume() const;
private:
double rang;
};
class CCylinder:public CSolid
{
public:
CCylinder(double R,double h):Rang(R),high(h){}
~CCylinder();
double area() const;
double volume() const;
private:
double Rang;
double high;
};
CCube::~CCube(){}
double CCube::area() const
{
return 6*len*len;
}
double CCube::volume() const
{
return len*len*len;
}
CBall::~CBall(){}
double CBall::area() const
{
return 4*pi*rang*rang;
}
double CBall::volume() const
{
return 1.33*pi*rang*rang*rang;
}
CCylinder::~CCylinder(){}
double CCylinder::area() const
{
return 2*pi*Rang*high+2*pi*Rang*Rang;
}
double CCylinder::volume() const
{
return pi*Rang*Rang*high;
}
int main( )
{
CSolid *p;
double s,v;
CCube x(30);
cout<<"立方體邊長為30"<<endl;
p=&x;
s=p->area( );
v=p->volume( );
cout<<"表面積:"<<s<<endl;
cout<<"體積:"<<v<<endl;
cout<<endl;
CBall y(4.5);
cout<<"球體半徑為4.5"<<endl;
p=&y;
s=p->area( );
v=p->volume( );
cout<<"表面積:"<<s<<endl;
cout<<"體積:"<<v<<endl;
cout<<endl;
CCylinder z(10,20);
cout<<"圓柱體底面半徑、高分别為10, 20"<<endl;
p=&z;
s=p->area( );
v=p->volume( );
cout<<"表面積:"<<s<<endl;
cout<<"體積:"<<v<<endl;
cout<<endl;
system("pause");
return 0;
}
/*int main()
{
CCube c1(1);
CBall c2(2);
CCylinder c3(3,4);
CSolid *p;
p = &c1;
cout << "正方體的表面積是:" << p->area() << "體積是:" << p->volume() <<endl;
p = &c2;
cout << "球體的表面積是:" << p->area() << "體積是:" << p->volume() << endl;
p = &c3;
cout << "圓柱體的表面積是:" << p->area() << "體積是:" << p->volume() << endl;
system("pause");
return 0;
}*/
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmL3MzM48lM3kTO4AzNzMTMvwVNx8CX1AjMxAjMvw1ckF2bsBXdvwFdl5mLuR2cj5Set1yZtl2Lc9CX6MHc0RHaiojIsJye.gif)
感悟:這個任務其實就是任務三的改變而已,沒有什麼,就是主函數那的問題了,定義指針類的問題,搞定這一切萬事大吉,找到書了,是以OK了,但還是用了老師的主函數,看着比我的好多了,我的就陪襯吧。