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.

Ti consigliamo anche