class figura {
int b,h;
public:
figura(){b=h=0};
int obtiene_h(){return h};
int obtiene_b(){return b};
}
class rectan public:figura {
public:
virtual int perim(){return 2*obtiene_h()+2*obtiene_b()};
virtual int area(){return obtiene_h()*obtiene_b()};
}
class trectan public:rectan {
public:
int perim(){return .....}
int area(){return rectan::area()/2}
}
-------------
main(){
figura *pf[2];
rectan r1;
trectan tr1;
pf[0]=&r1;
pf[1]=&tr1;
cout<<"Area de rectangulo"<<pf[0]->area();
cout<<"Perim de rectangulo"<<pf[0]->perim();
cout<<"Area de T.rectangulo"<<pf[1]->area();
cout<<"Perim de T.rectangulo"<<pf[1]->perim();
.....}