#include <iostream>
using namespace std;
class Figure
{
protected:
double x,y;
public:
void set(double i,double j) {x=i;y=j;}
virtual void area()=0;
};
class Triangle:public Figure
{
public:
void area() {cout<<"三角形面积:"<<x*y*0.5<<endl;}
};
class Rectangle:public Figure
{
public:
void area(int i) {cout<<"这是矩形,它的面积是:"<<x*y<<endl;}
};
void main()
{
Figure *pF;
//Figure f1;
//Rectangle r;
Triangle t;
t.set(10,20);
pF=&t;
pF->area();
Figure &rF=t;
rF.set(20,20);
rF.area();
}
Rectangle 也是抽象类以为area() 基类一样