1 / 12

Lezione X

Laboratorio di Programmazione. Lezione X. classe.h. classe.cpp. Struttura di un programma. Definizione classe e specifica (parziale). Specifica metodi mancanti in classe.h usando op. di scope resolution ::. main.cpp. Include “classe.h”. //file class.h class c { public:

cooper
Download Presentation

Lezione X

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Laboratorio di Programmazione Lezione X

  2. classe.h classe.cpp Struttura di un programma Definizione classe e specifica (parziale) Specifica metodi mancanti in classe.h usando op. di scope resolution :: main.cpp Include “classe.h”

  3. //file class.h class c { public: void prova(); } //file class.cpp #include “class.h” void c::prova() { //corpo funzione } Struttura di un programma (2) //file main.cpp #include “class.h” void main() { c oggetto; oggetto.prova(); }

  4. Per la gestione di un progetto su piu’ files e’ possibile creare un makefile, contenente l’elenco delle dipendenze dei files e delle azioni per compilare e linkare i componenti. Il makefile Main.cpp Class.cpp Class.h

  5. Etichetta Files dipendenti da etichetta Il makefile Main.cpp all: main.o class.o g++ -o execName class.o main.o main.o : main.cpp g++ -c main.cpp class.o : class.cpp g++ -c class.cpp Class.cpp Class.h Cosa fare se bisogna aggiornare l’etichetta

  6. All class.o main.o Il makefile Main.cpp main.cpp class.cpp all: main.o class.o g++ -o execName class.o main.o main.o : main.cpp g++ -c main.cpp class.o : class.cpp g++ -c class.cpp Class.cpp Class.h All e’ il default quando si ricompila tutto il progetto

  7. Il programma “make” prende in pasto un makefile ed esegue le compilazioni specificate. Uso (da riga di comando): make make all // all e’ l’etichetta di default make etichetta // si ricompila solo il sottoinsieme dipendente // da etichetta. Il make controlla se i files cpp e h sono stati aggiornati e ricompilare solo le parti di programma modificate. Come usare make

  8. Oggi parliamo delle pile (stack in inglese) Mnemonico: pila di piatti Una pila e’ un insieme ordinato di oggetti dello stesso tipo su cui e’ possibile eseguire le seguenti operazioni: Push: inserimento in testa di un oggetto Pop: prelevamento dell’oggetto in testa Empty: flag che indica se la pila e’ vuota Un po’ di strutture dati D A Push D A Pop A Pop C C C C B B B B

  9. La classe pila, dunque deve possedere almeno i 3 metodi: Push, Pop, Empty. Per implementare gli elementi ricorriamo ad un array, dove un indice top descrive l’elemento in testa: class pila { private: int* A; int top; public: int Pop( ); void Push ( int e); int Empty; }; La classe pila di interi

  10. Introduciamo i templates per descrivere una generica pila di oggetti della classe T: template <class T> class pila { private: T* A; int top; public: T Pop( ); void Push ( T e); int Empty; }; La classe pila di oggetti

  11. template <class T> class pila { … }; // specificare un metodo con l’operatore :: template <class T> T pila <T> :: Pop( ) { … } // e’ necessario specificare il tipo di pila // istanziare una pila pila<int> P1; pila<char> P2; Come usare i templates

  12. Scrivere un programma che, utilizzando una pila di char, sia in grado di dire se in un file di testo la sequenza di parentesi tonde ( ad es. una espressione aritmetica) risulta bilanciata e coerente: (1+(2*3) Caso errato (1+(2*3)) Caso corretto (1+(2*3))) Caso errato Programma del giorno

More Related