Esercizio 1 Completare la classe Vettore seguente scritta come template, effettuando l'overloading degli operatori di inserimento e di estrazione: #define DIM_INIZIALE 10; template class Vettore{ X *p; int sizeAttuale, dimAttuale, incremento, dimIniziale; public: Vettore(){ // Da completare .... } Vettore(int dimIniziale, int incremento){ // Da completare .... } Vettore(const Vettore &v){ // Da completare .... } ~Vettore(){ // Da completare .... } // Aggiunge in coda al vettore un nuovo oggetto (passaggio per copia) void add(X c){ // Da completare .... } // Preleva l'oggetto in posizione index dal vettore X get(int index){ // Da completare .... } // Fornisce il riempimento attuale del vettore int size(){ // Da completare .... } // Stampa a video tutti gli oggetti contenuti friend istream & operator >>(istream &i, Vettore &v){ // Da completare .... } // Stampa a video tutti gli oggetti contenuti friend ostream & operator <<(ostream &o, Vettore v){ // Da completare .... } Vettore operator+(Vettore v){ // Da completare .... } Vettore operator=(Vettore v){ // Da completare .... } // Azzera il contenuto del vettore, deallocando tutti gli oggetti // precedentemente contenuti e riportandolo alle dimensioni iniziali. void clear(){ // Da completare .... } }; Esercizio 2 Scrivere un programma che carica da file numeri complessi (scritti come coppie di float) e salva in un file i moduli degli stessi.