C++编程 生成一个Object抽象类,在其中声明double CalArea()为纯虚函数,从Object派生出:

: void main() { Object *obj[2]; obj[0]=new Rect(Point(0,0),Point(100,200)); obj[1]=new Circle(Point(100,200),100.0); int i; for (i=0;i<2;i++) { cout<<"the area is "<<obj[i]->calarea()<<endl; } }

class Object
{
public:
Object();
~Obeject();
virtual double CalArea();
}
class Rect: public Object
{
public:
Rect(Point &p1, Point &p2):point1(p1),point2(p2){};
~Rect();
double CalArea(){return (p2.x-p1.x)*(p2.y-p1.y);}
private:
Point p1;
Point p2;
};
#define PI 3.14159
class Circle:public Object
{
public:
Circle(Point &p, float r=0):cp(p),radius(r){}
~Circle();
double CalArea(){return r*r*PI;}
private:
Point cp;
float radius;
};
温馨提示:答案为网友推荐,仅供参考