La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Lezione IX Laboratorio di Programmazione. Le Classi Una classe C++ è definita come segue: class Nomeclasse { private: // metodi e attrib. visibili solo.

Presentazioni simili


Presentazione sul tema: "Lezione IX Laboratorio di Programmazione. Le Classi Una classe C++ è definita come segue: class Nomeclasse { private: // metodi e attrib. visibili solo."— Transcript della presentazione:

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(); }


Scaricare ppt "Lezione IX Laboratorio di Programmazione. Le Classi Una classe C++ è definita come segue: class Nomeclasse { private: // metodi e attrib. visibili solo."

Presentazioni simili


Annunci Google