孙伊涵天天向上一期:用c++类处理图形面积

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 00:24:32
定义一个类shapes,类中含有protected数据成员变量x、y、r。他们分别为长、宽、半径。其中公有成员函数dshapes(d,w)用来设置成员变量x、y的初值。成员函数rshapes(r1)用来设置成员r的初值。还有成员函数display。
定义类shapes的两个派生类,square(矩形)和circle(圆形)。其成员函数display分别用来计算矩形和圆的面积。
在函数中定义一个指针数组ptr。指向类shapes的对象。定义s1为square的对象。c1为circle的对象。ptr指针数组的第0个元素存放对象s1的地址。
第1个元素存放c1的地址。
用对象指针分别计算并输出矩形、圆的面积和周长。

上面是编程要求:希望哪位高手给一个程序,谢谢!

#include <iostream.h>
#define PI 3.14
class shapes
{
protected:
double x,y,r;
public:
void dshapes();
void rshapes();
virtual double display()=0;
};
class square : public shapes
{
public:
void dshapes(double a,double b)
{
x=a;
y=b;
}
double display()
{
double area;
area=x*y;
return area;
}
private:
double x,y;
};
class circle : public shapes
{
public:
void rshapes(double c)
{
r=c;
}
double display()
{
double area;
area=PI*r*r;
return area;
}
private:
double r;
};
int main()
{
shapes *ptr[2];
square s1;
circle c1;
s1.dshapes(1.00,2.00);
c1.rshapes(3.00);
ptr[0]=&s1;
ptr[1]=&c1;
double sarea=ptr[0]->display();
//double sarea=s1.display();
double carea=ptr[1]->display();
cout<<sarea<<endl;
cout<<carea<<endl;
return 0;
}