Newsgroup: it.comp.programmare
Titolo: chiedo aiuto per esame di programmazione

Una mia amica è disperata perché deve prepararsi all'esame di programmazione
con il testo (qui sotto riportato) che le è stato fornito.
Potete contattarla all'indirizzo e-mail 
uou...@libero.it
 . Grazie, lei vi
sarà riconoscente.
Terzo Progetto Laboratorio di Programmazione 1999-2000
consegna progetto: 30 Agosto 2000
Tema:
Implementazione della classe per rappresentare i rettangoli e di una classe
per rapresentare i quadrilateri (ed ogni altra classe di supporto
eventualmente necessaria).
Le funzionalità minime da implementare sono:
  1.. costruttori, distruttori e operatori necessari per il buon
funzionamento delle classi;
  2.. operatori più comuni per le operazioni fra elementi delle classi (es.
test uguaglianza, disuguaglianza, contenimento etc);
  3.. metodi per il calcolo del perimetro, area,  e minimo rettangolo
contenente la figura;
N.B. Le classi NON devono visualizzare niente ma solo fornire metodi per
calcolare i perimetri, aree etc.
Consultare spesso questa pagina per eventuali notizie riguardo il progetto
Lista delle dichiarazioni corrette di alcuni operatori C++ per una classe
generica:
const <classe>& operator=(const <classe> & a) // assegnamento
const <classe>& operator+=(const <classe> & a) // assegnamento con somma
const  <classe>& operator-=(const <classe>& a) // assegnamento con
sottrazione
const <classe>& operator*=(const <classe>& a) // assegnamento con prodotto
const <classe>& operator/=(const <classe>& a) //assegnamento con divisione
const <classe>& operator%=(const <classe>& a) // assegnamento con modulo
bool operator==(const <classe>& a) const // test uguaglianza
bool operator<=(const <classe>& a) const // test minore o uguale
bool operator>=(const <classe>& a) const // test maggiore o uguale
bool operator<(const <classe>& a) const // test minore
bool operator>(const <classe>& a) const // test maggiore
bool operator!=(const <classe>& a) const // test disuguaglianza
<classe> operator+(const <classe>& a) const // somma
<classe> operator-(const <classe>& a) const //sottrazione
<classe> operator*(const <classe>& a) const //moltiplicazione
<classe> operator/(const <classe>& a) const //divisione
<classe> operator%(const <classe>& a) const //modulo
<classe> operator+(void) const // funzione identita'
<classe> operator-(void) const // funzione cambio segno
Non è necessario implementare tutti gli operatori di sopra, ma solo quelli
che si ritiene necessari per il funzionamento della classe. Inoltre, altri
operatori possono essere implementati cambiandone l'usuale significato. Ad
esempio l'operatore ^ che denota l'or esclusivo, può essere ridefinito per
rappresentare l'elevamento a potenza e in questo caso la dichiarazione
dell'operatore diventa:
<classe> operator^(int i)const // elevamento di un oggetto della classe ad
un esponente intero
Inoltre le dichiarazioni di sopra sono relative alle dichiarazioni degli
operatori come metodi della classe <classe>. Nel caso si vogliano
implementare come funzioni, bisogna aggiungere un parametro ad ogni
dichiarazione di sopra. Per esempio:
<classe> operator+(const <classe>& t, const <classe>& a);
Come abbiamo visto a lezione la redifinizione dell'operatore << per
visualizzare su uno stream di output deve essere fatta come funzione e con
la seguente dichiarazione:
ostream& operator<<(ostream & stream, const <classe>& a);

Non conosci proprio la vergogna . Ti leggo proprio dappertutto.


class rect{
  private:
     int lati[4];
  public:
    rect(int l[4]);
    ~rect();
   rect(const rect&);
   int GetPerimetro(void);
};
ecc.............