Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 92 di 93
  • livello avanzato
Indice lezioni

Concetti base della programmazione ad oggetti

I concetti di classe e loro applicazione nella programmazione ad oggetti.
I concetti di classe e loro applicazione nella programmazione ad oggetti.
Link copiato negli appunti

Il concetto che sta alla base della programmazione ad oggetti è quello della classe. Una classe C++ rappresenta un tipo di dati astratto che può contenere elementi in stretta relazione tra loro e che condividono gli stessi attributi.
Un oggetto, di conseguenza, è semplicemente un'istanza di una classe.
Vediamo un esempio per chiarire questo concetto:

Consideriamo la classe animale. Essa può essere vista come un contenitore generico di dati i quali identificano le caratteristiche (es: il nome, la specie, ecc.) e le azioni (es: mangiare, dormire, ecc.) comuni a tutti gli animali. In particolare le caratteristiche della classe vengono denominate proprietà o attributi, mentre le azioni sono dette metodi o funzioni membro. Una istanza della classe animale è rappresentata, ad esempio, dall'oggetto cane. Il cane è un animale con delle caratteristiche e delle azioni particolari che specificano in modo univoco le proprietà ed i metodi definiti nella classe animale.

Possiamo riassumere i concetti base della programmazione ad oggetti nel seguente modo:

  • Possibilità di dichiarare una funzione come funzione membro di una determinata classe, che significa che tale funzione appartiene strettamente a quella classe e può agire solo sui membri di quella classe o su quelle da essa derivate.
  • Possibilità di dichiarare i singoli attributi e funzioni membro della classe come:
    private: accessibili solo alle funzioni membro appartenenti alla stessa classe
    protected: accessibili alle funzioni membro appartenenti alla stessa classe e alle classi da questa derivate (vedremo tra poco cosa significa classe derivata).
    public: accessibili da ogni parte del programma entro il campo di validità della classe in oggetto.
  • Possibilità di definire in una stessa classe, dati (attributi e/o funzioni membro) con lo stesso identificatore ma con diverso campo di accessibilità (public, protected, public). Tuttavia, si sconsiglia di usare questo approccio per non rendere difficilmente leggibile il programma.
  • Possibilità di overloading delle funzioni (si veda la definizione data nei capitoli precedenti).
  • Incapsulamento. Con tale termine si definisce la possibilità offerta dal C++ di collegare strettamente i dati contenuti in una classe con le funzioni che la manipolano. L'oggetto, è proprio l'entità logica che deriva dall'incapsulamento.
  • Ereditarietà. E' la possibilità per un oggetto di acquisire le caratteristiche (attributi e funzioni membro) di un altro oggetto.
  • Polimorfismo. Rappresenta la possibilità di utilizzare uno stesso identificatore per definire dati (attributi) o operazioni (funzioni membro) diverse allo stesso modo di come, per esempio, animali appartenenti ad una stessa classe possono assumere forme diverse in relazioni all'ambiente in cui vivono.

Se vuoi aggiornamenti su Development inserisci la tua email nel box qui sotto:

Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.

Ti consigliamo anche