Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoRosella Gasparini Modificato 11 anni fa
1
Lezione IX Laboratorio di Programmazione
2
Le Classi Una classe C++ è definita come segue: class Nomeclasse { private: // metodi e attrib. visibili solo nella classe public: // metodi accessibili dallesterno // buona norma no attributi public (black box) };
3
Attributi Gli attributi generalmente vengono specificati come normali variabili private. class Nomeclasse { private: int n; char c; };
4
Metodi 1 I metodi possono essere specificati in due modi diversi: class Nomeclasse { public: void metodo (parametri…) { //corpo del metodo } };
5
Metodi 2 Il secondo modo usa una definizione usando loperatore di scope resolution ::. class Nomeclasse { public: void metodo (parametri…); }; void Nomeclasse::metodo (parametri…) { // corpo del metodo }
6
Costruttori e distruttori class className { private: int a; public: className(int init = 0) //costruttore (con default =0) { a=init; } ~className() //distruttore { // eventuali operazioni in chiusura } //nel main... className obj1(1); className obj2; //loggetto prende i valori di default
7
Operatori class className { private: int a; public: className operator+(className obj1) //per gestire this + obj1 { className temp; temp.a=a+obj1.a return temp; } Se loperaratore è della classe, il primo operando (a sinistra) è sottointeso.
8
Operatori class className { private: int a; public: ) void stampa(ostream& str); } ostream& operator <<(ostream& str, className obj1) { obj1.stampa(str); return str; } Se loperaratore non è della classe, bisogna esprimere tutti i parametri.
9
Constants E possibile dichiarare un oggetto costante: in questo caso non potrà essere modificato durante lesecuzione. Per es. const classe oggetto; E possibile dichiarare un metodo di una classe constante: significa che il metodo (ed eventuali chiamate interne) non modificherà loggetto. Per es. void classe::metodo (...) const;
10
Constants Buona norma con i passaggi per riferimento è di aggiungere const class className { private: int a; public: void metodo1(const className& obj1) { //usa obj1 senza modificarlo } void metodo2(className obj1) { //usa obj1, eventuali modifiche locali al metodo } void metodo3(className& obj1) { //modifiche di obj1 si applicano anche alloggetto originale }
11
Struttura di un programma Definizione classe e specifica (parziale) classe.hclasse.cpp main.cpp Specifica metodi mancanti in classe.h usando op. di scope resolution :: Include classe.h
12
Struttura di un programma (2) //file class.cpp #include class.h void c::prova() { //corpo funzione } //file class.h class c { public: void prova(); } //file main.cpp #include class.h void main() { c oggetto; oggetto.prova(); }
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.