In questo tutorial, impareremo a conoscere oggetti e classi e come usarli in C ++ con l'aiuto di esempi.
Nei tutorial precedenti, abbiamo imparato a conoscere funzioni e variabili. A volte è desiderabile mettere funzioni e dati correlati in un unico posto in modo che sia logico e più facile da lavorare.
Supponiamo di dover memorizzare la lunghezza, la larghezza e l'altezza di una stanza rettangolare e calcolarne l'area e il volume.
Per gestire questa attività, possiamo creare tre variabili, ad esempio lunghezza, larghezza e altezza insieme alle funzioni calculateArea()
e calculateVolume()
.
Tuttavia, in C ++, invece di creare variabili e funzioni separate, possiamo anche racchiudere questi dati e funzioni correlati in un unico posto (creando oggetti ). Questo paradigma di programmazione è noto come programmazione orientata agli oggetti.
Ma prima di poter creare oggetti e usarli in C ++, dobbiamo prima conoscere le classi .
Classe C ++
Una classe è un modello per l'oggetto.
Possiamo pensare a una classe come a uno schizzo (prototipo) di una casa. Contiene tutti i dettagli su pavimenti, porte, finestre, ecc. Sulla base di queste descrizioni costruiamo la casa. La casa è l'oggetto.
Crea una classe
Una classe è definita in C ++ utilizzando la parola chiave class
seguita dal nome della classe.
Il corpo della classe è definito all'interno delle parentesi graffe e termina con un punto e virgola alla fine.
class className ( // some data // some functions );
Per esempio,
class Room ( public: double length; double breadth; double height; double calculateArea()( return length * breadth; ) double calculateVolume()( return length * breadth * height; ) );
Qui, abbiamo definito una classe denominata Room
.
Le variabili length, width e height dichiarate all'interno della classe sono note come membri dati . Inoltre, le funzioni calculateArea()
e calculateVolume()
sono note come funzioni membro di una classe.
Oggetti C ++
Quando viene definita una classe, viene definita solo la specifica per l'oggetto; non viene allocata memoria o spazio di archiviazione.
Per utilizzare i dati e le funzioni di accesso definite nella classe, è necessario creare oggetti.
Sintassi per definire l'oggetto in C ++
className objectVariableName;
Possiamo creare oggetti di Room
classe (definiti nell'esempio sopra) come segue:
// sample function void sampleFunction() ( // create objects Room room1, room2; ) int main()( // create objects Room room3, room4; )
Qui Room
vengono creati due oggetti room1 e room2 della classe sampleFunction()
. Allo stesso modo, gli oggetti room3 e room4 vengono creati in main()
.
Come possiamo vedere, possiamo creare oggetti di una classe in qualsiasi funzione del programma. Possiamo anche creare oggetti di una classe all'interno della classe stessa o in altre classi.
Inoltre, possiamo creare tutti gli oggetti che vogliamo da una singola classe.
Membri dei dati di accesso C ++ e funzioni dei membri
È possibile accedere ai membri dati e alle funzioni membro di una classe utilizzando un .
operatore (punto). Per esempio,
room2.calculateArea();
Questo chiamerà la calculateArea()
funzione all'interno della Room
classe per l'oggetto room2.
Allo stesso modo, è possibile accedere ai membri dei dati come:
room1.length = 5.5;
In questo caso, inizializza la variabile di lunghezza di room1 su 5.5
.
Esempio 1: oggetto e classe nella programmazione C ++
// Program to illustrate the working of // objects and class in C++ Programming #include using namespace std; // create a class class Room ( public: double length; double breadth; double height; double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // assign values to data members room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2; // calculate and display the area and volume of the room cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )
Produzione
Area della stanza = 1309 Volume della stanza = 25132,8
In questo programma, abbiamo utilizzato la Room
classe e il suo oggetto room1 per calcolare l'area e il volume di una stanza.
In main()
, abbiamo assegnato i valori di lunghezza, larghezza e altezza con il codice:
room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2;
Abbiamo quindi chiamato le funzioni calculateArea()
e calculateVolume()
per eseguire i calcoli necessari.
Notare l'uso della parola chiave public
nel programma. Ciò significa che i membri sono pubblici e sono accessibili ovunque dal programma.
Secondo le nostre esigenze, possiamo anche creare membri privati utilizzando la private
parola chiave. È possibile accedere ai membri privati di una classe solo dall'interno della classe. Per esempio,
class Test ( private:
int a; void function1() ( ) public: int b; void function2() ( ) ) Here, a and function1() are private and are. Thus they cannot be accessed from outside the class.
D'altra parte, b e function2()
sono accessibili da qualsiasi punto del programma.
Per ulteriori informazioni sulle parole chiave pubbliche e private, visita il nostro tutorial sui modificatori di accesso alle classi C ++.
Esempio 2: utilizzo di public e private nella classe C ++
// Program to illustrate the working of // public and private in C++ Class #include using namespace std; class Room ( private: double length; double breadth; double height; public: // function to initialize private variables void getData(double len, double brth, double hgt) ( length = len; breadth = brth; height = hgt; ) double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // pass the values of private variables as arguments room1.getData(42.5, 30.8, 19.2); cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )
Produzione
Area della stanza = 1309 Volume della stanza = 25132,8
L'esempio sopra è quasi identico al primo esempio, tranne per il fatto che le variabili di classe ora sono private.
Poiché le variabili ora sono private, non possiamo accedervi direttamente da main()
. Pertanto, l'utilizzo del codice seguente non sarebbe valido:
// invalid code obj.length = 42.5; obj.breadth = 30.8; obj.height = 19.2;
Invece, si usa la funzione pubblica getData()
per inizializzare le variabili private tramite i parametri di funzione double len
, double brth
e double hgt
.
Per saperne di più su oggetti e classi, visita questi argomenti:
- Costruttori C ++
- Come passare e restituire un oggetto da una funzione?