Differences

This shows you the differences between two versions of the page.

Link to this comparison view

appunti3s:esempio_di_programmazione_orientata_agli_oggetti [2018/04/25 07:55] (current)
Line 1: Line 1:
 +===== Esempio di funzioni membro =====
 +Nel linguaggio C++ si utilizzano dei "​modelli"​ chiamati classi.
 +
 +Le classi sono pezzi di codice che sono collegate e che dipendono anche da altri classi, ma come primo esempio si vedrà una sola classe.
 +La classe {{:​appunti3s:​contocorrente1.zip|ContoCorrente}} (che in futuro si potrebbe legare ad una classe Correntista)
 +
 +In particolare,​ il codice sorgente dell'​header può essere rappresentato con la successiva immagine ​
 +
 +<file c contocorrente.h>​
 +
 +#include <​cmath>​
 +
 +class ContoCorrente
 +   {
 +     ​public:​
 +            ContoCorrente ();                  // costruttore predefinito
 +            ContoCorrente(float denaro); ​      //​costruttore
 +            float saldo() const; ​              // metodo ispettore
 +            void versareDenaro(float denaro); ​ // metodo modificatore
 +            void prelevareDenaro(float denaro); ​
 +
 +     ​private:​
 +            float mSaldo; ​                       // dato membro
 +                              // to do: dove si puo' aggiungere il numero del conto???
 +   };
 +
 +</​file>​
 +{{ :​appunti3s:​contocorrente2.png?​400 |}}
 +In questa figura si vede un esempio di schema delle classi, utile per sintetizzare il codice vero e proprio. I nomi dei dati precedono il tipo per poter essere trovati più rapidamente durante la lettura.
 +==== Dati membro ====
 +Di solito, i dati membro sono dichiarati nell'​area "​private"​ di una classe in modo da garantire il [[appunti3s:​programmazione orientata agli oggetti#​data hiding]] (vedere dopo).
 +Per convenzione possono essere fatti iniziare con la lettera "​m"​ minuscola di "​membro"​.
 +Vengono anche chiamati "​proprietà"​ della classe, e definiscono lo stato di una classe.
 +
 +==== Funzioni membro ====
 +
 +All'​interno di una classe, di solito, sono dichiarate anche le principali funzioni che operano sui dati di quella classe. Queste funzioni sono dette funzioni membro, o anche "​metodi"​. Vedere l'​esempio nella classe ContoCorrente.
 +Il costruttore,​ il distruttore sono casi particolari (speciali) di funzioni membro che vengono studiate a parte.
 +
 +Le funzioni membro della classe ContoCorrente possono essere chiamate solo tramite un oggetto di tipo ContoCorrente,​ col la seguente sintassi:
 +<​code>​
 +ContoCorrente mioConto; ​         // crea l'​oggetto mioConto
 +mioConto.prelevaDenaro(30); ​     // chiama la funzione membro</​code> ​
 +Come si vede in questo esempio, il programmatore può chiamare la funzione "​prelevaDenaro()"​ solo accanto ad un oggetto di classe ContoCorrente,​ a cui anche la funzione appartiene. Quindi prima di tutto si crea l'​oggetto "​mioConto"​ e dopo si può usare la funzione. Il programmatore può usare direttamente solo le funzioni di tipo "​public"​ che fungono da interfaccia per l'uso della classe. Le funzioni di tipo "​private"​ possono essere usate solo da altre funzioni membro.
 +
 +Vedere anche codice sorgente di {{:​appunti3s:​contocorrente1.zip|ContoCorrente.cpp}}
 +>> Esercizio provare ad usare le seguenti funzioni membro:
 +int compare ( const string& str ) const; ​ int find ( char c, size_t pos = 0 ) const;
  
  • appunti3s/esempio_di_programmazione_orientata_agli_oggetti.txt
  • Last modified: 2018/04/25 07:55
  • (external edit)