In un file geometry.h, dichiarare le struct seguenti:
- punto, con membri di tipo double x e y, rappresentanti rispettivamente l’ascissa e l’ordinata di un punto nel piano cartesiano;
- segmento, con membri di tipo punto a e b, rappresentanti i due punti estremi del segmento;
- retta, con membri opportuni per memorizzare i coefficienti dell’equazione di una retta (nella forma a x + b y + c = 0);
- triangolo, con membri di tipo punto a, b e c, rappresentanti i vertici del triangolo;
- poligono, con membri opportuni per memorizzare il numero di lati ed i vertici del poligono.
- circonferenza, con membri opportuni per memorizzare il centro ed il raggio.
Per ciascuna delle struct precedenti, si dichiarino ed implementino le seguenti funzioni:
- void print(const &, ostream& out = cout);
// visualizza sullo stream out (per default cout) la struct
// in forma testuale opportuna - get(...); // restituisce la struct inizializzata con i parametri // specificati
- copy(const & original);
// restituisce la struct copia di quella specificata - bool equals(const & lhs, const & rhs);
// restituisce true se lhs e rhs “coincidono” false altrimenti - double length(const &);
// ove la funzione abbia senso - double perimeter(const &);
// ove la funzione abbia senso - double area(const &);
// ove la funzione abbia senso - bool contains(const &, const punto & p);
// ove la funzione abbia senso
Realizzare quindi nel file geometry.cpp un’applicazione che consenta all’utente di verificare il funzionamento della libreria geometry.h.