#include <iostream>
#include <cstdio>
using namespace std;
class base{
protected:
int x,y;
public:
base(int x,int y){
base::x=x;
base::y = y;
}
virtual void disp(){
cout<<"这个类没有面积"<<endl;
}
};
class triangle:public base{
public:
triangle(int x,int y):base(x,y){}
void disp(){
cout<<"三角形面积"<<x*y*0.5<<endl;
}
};
class square:public base{
public:
square(int x):base(x,x){}
void disp(){
cout<<"正方形面积:"<<x*x<<endl;
}
};
class circles:public base{
public:
circles(int x):base(x,x){}
void disp(){
cout<<"圆形面积:"<<x*x*3.1415926<<endl;
}
};
int main(){
base *p;
triangle t(20,10);
square s(20);
circles c(20);
p=&t;
p->disp();
p=&s;
p->disp();
p=&c;
p->disp();
return 0;
}
多态性和虚函数 test 例8.43 P256