C++ Lezione 12: introduzione alle Classi
è un gruppo di piccole aggiunte al C e una aggiunta maggiore. Questa aggiunta maggiore è l'introduzione orientata agli oggetti. Come dice il nome, si occupa di oggetti. Senza dubbio, non si tratta di oggetti della vita reale. Invece, questi oggetti sono le definizioni essenziali di veri oggetti del mondo, o persone. Le strutture sono a un passo da questi oggetti, non possiedono un loro elemento: le funzioni. La definizione di questi oggetti è 'classe'. La via più semplice per immaginare una classe è pensare ad una struttura con funzioni.
Cos'è questa misteriosa struttura? Beh, non si tratta solo di una serie di variabili sotto un titolo, ma è una raccolta di funzioni sotto lo stesso titolo. Se la struttura è una casa, allora le funzioni sono le porte. Esse di solito saranno il solo mezzo per modificare le variabili nella struttura, e di solito saranno l'unico mezzo per accedere alle variabili in questa struttura.
D'ora in poi, chiameremo 'classi' queste strutture con funzioni (penso che a Marx il C++ non sarebbe piaciuto). La sintassi di queste classi è semplice. Primo, mettete la parola chiave 'class' quindi il nome della classe. Il nostro esempio userà il nome computer. Quindi si mettono le diverse variabili che vogliamo che la classe contenga. Nel nostro esempio sarà solo una, processor speed. Comunque, prima di mettere le diverse variabili, è necessario decidere il grado di restrizione per la variabile. Esistono tre livelli di restrizione. Il primo è public (pubblico), il secondo è protected (protected) e il terzo è privato (private). Per ora, tutto quello di cui si ha bisogno è che lo specificatore public accolga qualsiasi parte del programma, permettendo a quello che non fa parte della classe di accedere alle variabili specificate come public. Lo specifier private permette solo alle funzioni della classe che possiede (non un termine tecnico) la variabile di accedere a quella variabile.
#include <iostream.h>
class computer //Modo standard di definire una classe
{
private: //Questo vuol dire che tutte le variabili qui incluse, finché non
//viene posto un nuovo tipo di restrizione saranno
//accessibili solo alle funzioni che fanno parte di questa classe.
//NOTA: questi sono due punti (:), NON un punto e virgola (;)...
int processorspeed;
public: //Questo significa che tutte le funzioni qui sotto (e variabili, se
//ce ne sono) sono accessibili al resto del programma.
//NOTA: questi sono due punti (:), NON un punto e virgola (;)...
void setspeed(int p); //Queste due funzioni saranno definite fuori dalla
//classe
int readspeed();
}; //Non dimenticate il ';' che ci avanza
void computer::setspeed(int p) //Per definire una funzione al di fuori,
//mettete il nome della funzione dopo il tipo
//restituito e quindi due ':' (cioè ::),
//infine il nome della della funzione.
{
processorspeed = p;
}
int computer::readspeed() //Il '::' semplicemente dice al compilatore che la
//funzione fa perte della classe
{
return processorspeed;
}
void main()
{
computer compute; //Per creare una 'istanza' della funzione, semplicemente
//trattatela come se fosse una struttura. (Una istanza è
//semplicemente quando si crea un oggetto attuale dalla
//classe, rispetto ad avere la definizione della classe)
compute.setspeed(100); //Per chiamare le funzioni nella classe, ponete il
//nome dell'istanza, quindi il nome della funzione.
cout<<compute.readspeed(); //Vedere la nota in alto.
}
Come potete vedere, questo è un concetto piuttosto semplice. Comunque è molto potente. Rende semplice impedire che le variabili contenute (o possedute) dalla classe siano sovrascritte accidentalmente. Permettono anche un modo di vedere la programmazione totalmente differente. Comunque, voglio terminare questo tutorial come se fosse una introduzione. Sto scrivendo altri tutorial sulle classi, che ne tratteranno altri dettagli.
PREGO di mandare commenti su questo tutorial. E' stato scritto molto dopo della stesura di tutti gli altri, e mi voglio assicurare di aver seguito lo standard dei precedenti tutorial. Voglio essere sicuto che questo tutorial sia chiaro.
---
Nota: La mia homepage è http://www.cprogramming.com. La mia email è webmaster@cprogramming.com. Vi prego di mandarmi una email con commenti e/o suggerimenti. Se volete usare questo tutorial nel vostro sito, vi prego di mandarmi una email e dia aggiungere un link a http://www.cprogramming.com.
Grazie :)