User Tools

Site Tools


appunti3s:esempio_di_programmazione_orientata_agli_oggetti

Differences

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

Link to this comparison view

appunti3s:esempio_di_programmazione_orientata_agli_oggetti [2020/06/08 22:19]
appunti3s:esempio_di_programmazione_orientata_agli_oggetti [2020/06/08 22:19] (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: 2020/06/08 22:19 (external edit)