形状(一)
来源:百度文库 编辑:神马文学网 时间:2024/05/10 21:18:06
7、形状(一)
编写C++程序完成以下功能:
(1) 声明一个基类Shape(形状),其中包含一个方法来计算面积;
(2) 从Shape派生两个类矩形和圆形;
(3) 从矩形派生正方形;
(4) 分别实现派生类构造函数、析构函数和其他方法;
(5) 创建派生类的对象,观察构造函数、析构函数调用次序;
(6) 不同对象计算面积。
#include
#define PI 3.1415
using namespace std;
class Shape
{
public:
Shape() {cout<<"调用构造函数Shape"<
~Shape() {cout<<"调用析构函数Shape"<
double Girth() {}
double Area() {}
};
class Rectangle: public Shape
{
private:
double len;
double wide;
public:
Rectangle(double l=0,double w=0) {len=l; wide=w; cout<<"调用构造函数Rectangle"<
void SetRectangle(double l=0,double w=0) {len=l; wide=w;}
~Rectangle(){cout<<"调用析构函数Rectangle"<
double Girth() {return (len+wide)*2;}
double Area() {return len*wide;}
};
class Circle:public Shape
{
private:
double r;
public:
Circle(double radius=0) {r=radius; cout<<"调用构造函数Circle"<
void SetCircle(double radius=0) {r=radius;}
~Circle(){cout<<"调用析构函数Circle"<
double Girth() {return 2*PI*r;}
double Area() {return PI*r*r;}
};
class Square:public Rectangle
{
public:
Square(double x=0) {Rectangle(x,x); cout<<"调用构造函数Square"<
void SetSquare(double x=0) {SetRectangle(x,x);}
~Square(){cout<<"调用析构函数Square"<
};
int main()
{
Rectangle b;
Circle c;
Square d;
double x,y,m,n;
cout<
cin>>x>>y;
b.SetRectangle(x,y);
cout<<"矩形周长为:"<
cout<<"矩形面积为:"<
cout<
cin>>m;
c.SetCircle(m);
cout<<"圆形周长为:"<
cout<<"圆形面积为:"<
cout<
cin>>n;
d.SetSquare(n);
cout<<"正方形周长为:"<
cout<<"圆形面积为:"<
system("pause");
cout<
return 0;