Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Programmazione object oriented in C++
Le classi
2
Software di qualità Robustezza Estensibilità Compatibilità
capacità di un programma di funzionare correttamente anche in condizioni anomale Estensibilità facilità con la quale un software si può modificare in relazione a variazioni delle specifiche Compatibilità facilità con la quale un software si può interfacciare con altri prodotti software
3
La classe Rappresenta uno dei concetti (IDEA) dell’applicazione, e deve essere il più astratto e generale possibile. Nuovo tipo di variabile con facile meccanismo di protezione dei dati (incapsulamento)
4
La classe in C++ Simile nella forma ad una struttura C
Contiene oltre ai dati, anche le funzioni che permettono di controllare l’accesso ai dati
5
Esempio: una classe in C++
class Punto{ public: void Set(); void Print(); private: float x, y; };
6
Le classi Member function o metodi:
le funzioni di una classe Una classe può nascondere all’utente la sua struttura interna e consentire l’accesso ai dati solo mediante le member function.
7
Dichiarazione di Oggetti
Oggetto = istanza di una classe Punto pt; oggetto di tipo Punto il cui identificatore è pt Una classe non è un oggetto ma solo una sua descrizione non riserva un’area di memoria
8
Specificatori di accesso
Public i membri della classe sono accessibili in tutto lo spazio di visibilità dell’oggetto di quella classe permettono al programmatore di accedere alle altre componenti dell’oggetto
9
Specificatori di accesso
Private l’accesso è possibile soltanto attraverso le member function (specificatore di default)
10
Operatore:: La definizione delle member function è associata alla classe di appartenenza mediante l’operatore di scope resolution “::” (operatore class resolution)
11
Esempio: operatore ‘::’
void Punto::Print() { cout<< “Ascisse”<<x<<‘\n’; cout<< “Ordinate”<<y<<‘\n’; }
12
Chiamate di member function
Avvengono mediante gli operatori ‘.’ e ‘->’ Es. Punto pt, *p_punto; pt.Print(); p_punto->Set();
13
Member function Sezione di interfaccia Sezione di implementazione
sono descritte le member function header file (Punto.h) Sezione di implementazione sono definite le member function file sorgente (Punto.cpp)
14
Esempio: Sezione di interfaccia
class Punto{ public: void Set(); void Print(); private: float x, y; };
15
Esempio: Sezione di implementazione
void Punto::Print() { cout<< “Ascisse”<<x<<‘\n’; cout<< “Ordinate”<<y<<‘\n’; } void Punto::Set() cout << “Valore delle ascisse”; cin >> x; cout << “Valore delle ordinate”; cin >> y;
16
Costruttore Member function particolare usato per l’inizializzazione dei dati Stesso nome della classe di cui è membro e non possiede alcun valore di ritorno (nemmeno void) Richiamato direttamente al momento della dichiarazione di un oggetto
17
Distruttore Member function particolare
usato per il rilascio della memoria allocata dinamicamente Stesso nome della classe preceduto dal simbolo ‘~’, non può avere argomenti e non possiede alcun valore di ritorno (nemmeno void) Chiamato automaticamente quando un oggetto esce dal proprio spazio di visibilità
18
Esempio: costruttore e distruttore
class Punto{ public: Punto(); //costruttore ~Punto(); //distruttore void Set(); void Print(); private: float x, y; };
19
Esempio completo Sezione di interfaccia class Punto{ public:
Punto(); //costruttore ~Punto(); //distruttore void Set(); void Print(); private: float x, y; };
20
Esempio completo (continua)
Sezione di interfaccia //definizione costruttore classe Punto Punto::Punto() { x=y=0; } //definizione distruttore classe Punto Punto::~Punto() cout>>”Oggetto distrutto”>>’\n’;
21
Esempio completo (continua)
Sezione di interfaccia (continua) void Punto::Print() //def. member function Print { cout<< “Ascisse”<<x<<‘\n’; cout<< “Ordinate”<<y<<‘\n’; } void Punto::Set() //def. member function Set cout << “Valore delle ascisse”; cin >> x; cout << “Valore delle ordinate”; cin >> y;
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.