#include using namespace std; class Poligono { protected: // double base, altezza; public: void set_values (double a, double b){ base=a; altezza=b; } }; class Rettangolo: public Poligono { public: double area () {return (base * altezza);} // }; class Triangolo : public Poligono{ public : double area() {return ( base * altezza / 2); } }; int main () { Rettangolo ret1; Triangolo trian1; Poligono * polptr1 = &ret1; Poligono * polptr2 = &trian1; polptr1->set_values(5.0, 6.0); polptr2->set_values(10.0, 28.0); // cout << " area rettan = " << polptr1->area() << "; area trian = " << polptr2->area() << endl;// con questo comando il compilatore //darebbe errore perche; la classe Poligono non ha il metodo area (che e' invece presente nelle classi Rettangolo e Poligono ! cout << " area rettan = " << ret1.area() << "; area trian = " << trian1.area() << endl; return (0); }