//Metodo virtuale puro in una classe #include using namespace std; class Poligono { protected: // specificatore di accesso per le classi derivate. Se commentassi questa istruzione ? double base, altezza; public: void set_values (double a, double b){ base=a; altezza=b; } virtual double area() = 0; // metodo virtuale puro; la classe in questo caso e' detta astratta !! //questa classe non puo' essere istanziata perche' ha un metodo non implementato!! Pero' ... }; 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 polig1; sbagliato nom posso creare l'oggetto polig1 da una classe astratta !! 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() << "; area polig = "<< polptr3->area() << endl; return (0); }