设计一个抽象基类Figure
Figure里面包含两个纯虚函数分别用于计算图形的面积和体积:依据Figure派生出Cycle类(包含羊径等数据成员和成员函数(自行定义)),Triangle类(包含两条边等数据成员和成员函数(自行定义))、Square类(包含边长等数据成员和成员函数(自行定义))、cylinder类包含底面圆的半径、高等数据成员和成员函数(自行定叉)))
如有不当之处,请大佬指正,谢谢!
那我们现在就开始吧!
首先把纯虚函数写出来,注意=0;
#include <iostream>
using namespace std;
class Figure{
public:
virtual void S(float a)const =0;
virtual void S(float a,float b)const =0;
virtual void V(float a)const =0;
virtual void V(float a,float b)const =0;
virtual ~Figure(){};
private:
float a,b;
};
然后把继承类写出来,并实现函数,注意:基类里面此时用不到的函数也要实现;
//球;
class Cycle:public Figure{
public:
void S(float a)const;
void V(float a)const;
virtual void S(float a,float b)const {};
virtual void V(float a,float b)const {};
};
void Cycle::S(float a)const {cout<<"球的面积=" <<a*a*3.14*4<<endl;}
void Cycle::V(float a)const {cout<<"球的体积=" <<a*a*a*3.14*4/3<<endl;}
后面是剩下的几个形状的面积和体积;
//三角锥;
class Triangle:public Figure{
public:
void S(float a)const;
void V(float a)const;
virtual void S(float a,float b)const {};
virtual void V(float a,float b)const {};
private:
float a;
};
void Triangle::S(float a)const {cout<<"正四面体的面积=" <<a*a*1.732<<endl;}
void Triangle::V(float a)const {cout<<"正四面体的体积=" <<a*a*a*1.414/12<<endl;}
//正方体;
class Square:public Figure{
public:
void S(float a)const;
void V(float a)const;
virtual void S(float a,float b)const {};
virtual void V(float a,float b)const {};
private:
float a;
};
void Square::S(float a)const {cout<<"正方体的面积=" <<a*a*6<<endl;}
void Square::V(float a)const {cout<<"正方体的体积=" <<a*a*a<<endl;}
//圆柱;
class Cylinder:public Figure{
public:
void S(float a,float b)const;
void V(float a,float b)const;
virtual void S(float a)const {};
virtual void V(float a)const {};
private:
float a,b;
};
void Cylinder::S(float a,float b)const {cout<<"圆柱的面积=" <<3.14*a*a*2+3.14*a*2*b<<endl;}
void Cylinder::V(float a,float b)const {cout<<"圆柱的体积=" <<3.14*b*a*a<<endl;}
最后写main函数,实现它!
int main()
{
Cycle cyc; cyc.S(2); cyc.V(2);
Triangle tr; tr.S(2); tr.V(2);
Square sq; sq.S(2); sq.V(2);
Cylinder cyl; cyl.S(2,2); cyl.V(2,2);
return 0;
}
完工!嘻