#include using namespace std; class Rettangolo { //classe base double x, y; double semiperimetro () {return (x+y);} public: Rettangolo (double, double); double area () {return (x*y);} double perimetro() {return 2*(x+y);} double perimetrobis () { return ( 2*semiperimetro() ); } }; Rettangolo:: Rettangolo (double a, double b){ x=a; y=b; } class Quadrato : public Rettangolo { //derived class public: Quadrato (double a); //costruttore }; Quadrato::Quadrato( double x) : Rettangolo( x, x) { //classe derivata } int main () { Rettangolo ret1 (2.0, 3.0), ; Quadrato quadr1 (10) ; cout << "area Rettangolo = " << ret1.area() << "; area quadrato = " << quadr1.area() << endl; Rettangolo * rett; Quadrato * quadr; rett = new Rettangolo ( 5.0, 8.0 ); quadr = new Quadrato ( 15 ); // cout << "Usando i puntatori: area Rettangolo = " << rett->area() << "; area quadrato = " << quadr->area() << endl; delete rett; delete quadr; return (0); }