Classi e oggetti C ++

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 classseguita 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 Roomclasse (definiti nell'esempio sopra) come segue:

 // sample function void sampleFunction() ( // create objects Room room1, room2; ) int main()( // create objects Room room3, room4; )

Qui Roomvengono 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 Roomclasse 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 Roomclasse 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 publicnel 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 privateparola 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 brthe double hgt.

Per saperne di più su oggetti e classi, visita questi argomenti:

  • Costruttori C ++
  • Come passare e restituire un oggetto da una funzione?

Articoli interessanti...