La notazione grafica è una metafora nella quale sono rappresentati in tre sezioni contigue:
Una Classe può giocare un duplice ruolo:
Rappresenta un’interfaccia per la classe stessa in cui sono descritte:
E’ separata dalla implementazione, permette utilizzo senza che utente conosca i dettagli di implementazione.
È a cura dello sviluppatore della classe.
E’ scritta in un apposito “file di intestazione”.
E’ la codifica in C++ delle singole operazioni presentate nell’interfaccia della Classe.
E’ una particolare soluzione (può cambiare l’implementazione senza che cambi l’interfaccia).
È a cura dello sviluppatore della classe.
E’ scritta in un apposito “file di implementazione ” (con estensione .cpp).
Affinché un programma possa utilizzare un classe deve:
La classe consente di definire un nuovo tipo di dato, crearne uno o più esemplari (oggetti), inizializzarli ed applicare loro i metodi di elaborazione disponibili.
La struttura dati e gli algoritmi sono tenuti nascosti all’interno del modulo che implementa la classe.
Lo stato dell’oggetto, cioè i valori correnti delle variabili che lo costituiscono, è incapsulato in una specifica struttura dati ed evolve unicamente in relazione ai metodi ad esso applicati.
Un oggetto è una istanza (“esemplare”) di una classe.
Due esemplari della stessa classe sono distinguibili soltanto per il loro stato (i valori dei dati membro), mentre il comportamento (le funzioni membro) è sempre identico.
Ciascun oggetto della classe è costituito:
Un costruttore è una funzione membro:
void
).Un distruttore è una funzione membro che:
1. Strutture e typedef. Record in C/C++: Concetti Base
4. Puntatori a tipi di dato strutturati. Allocazione Dinamica
5. Puntatori: aspetti avanzati
7. Asserzioni
8. Gestione delle eccezioni. Concetti base
9. Programmazione modulare: concetti base
10. Programmazione Modulare: Meccanismi e Strumenti a supporto in C/C++
12. Esercitazione: Strutture Dati Pila e Coda
13. Esercitazione. Strutture Dati: Lista Concatenata
14. Meccanismi di Incapsulamento in C++ Namespaces
15. Programmazione orientata agli oggetti. Introduzione