Classi e oggetti C ++
Lo scopo principale della programmazione C ++ è aggiungere l'orientamento agli oggetti al linguaggio di programmazione C e le classi sono la caratteristica centrale di C ++ che supporta la programmazione orientata agli oggetti e sono spesso chiamati tipi definiti dall'utente.
Una classe viene utilizzata per specificare la forma di un oggetto e combina la rappresentazione dei dati e i metodi per manipolare tali dati in un unico pacchetto pulito. I dati e le funzioni all'interno di una classe sono chiamati membri della classe.
Definizioni delle classi C ++
Quando si definisce una classe, si definisce un progetto per un tipo di dati. Questo in realtà non definisce alcun dato, ma definisce cosa significa il nome della classe, cioè di cosa sarà composto un oggetto della classe e quali operazioni possono essere eseguite su tale oggetto.
Una definizione di classe inizia con la parola chiave classseguito dal nome della classe; e il corpo di classe, racchiuso da un paio di parentesi graffe. Una definizione di classe deve essere seguita da un punto e virgola o da un elenco di dichiarazioni. Ad esempio, abbiamo definito il tipo di dati Box utilizzando la parola chiaveclass come segue -
class Box {
public:
double length; // Length of a box
double breadth; // Breadth of a box
double height; // Height of a box
};
La parola chiave publicdetermina gli attributi di accesso dei membri della classe che lo segue. È possibile accedere a un membro pubblico dall'esterno della classe in qualsiasi punto all'interno dell'ambito dell'oggetto classe. Puoi anche specificare i membri di una classe comeprivate o protected di cui parleremo in una sottosezione.
Definisci oggetti C ++
Una classe fornisce i progetti per gli oggetti, quindi fondamentalmente un oggetto viene creato da una classe. Dichiariamo gli oggetti di una classe con esattamente lo stesso tipo di dichiarazione con cui dichiariamo variabili di tipi base. Le seguenti istruzioni dichiarano due oggetti della classe Box -
Box Box1; // Declare Box1 of type Box
Box Box2; // Declare Box2 of type Box
Entrambi gli oggetti Box1 e Box2 avranno la propria copia dei membri dati.
Accesso ai membri dei dati
È possibile accedere ai membri dei dati pubblici degli oggetti di una classe utilizzando l'operatore di accesso diretto ai membri (.). Proviamo il seguente esempio per chiarire le cose:
#include <iostream>
using namespace std;
class Box {
public:
double length; // Length of a box
double breadth; // Breadth of a box
double height; // Height of a box
};
int main() {
Box Box1; // Declare Box1 of type Box
Box Box2; // Declare Box2 of type Box
double volume = 0.0; // Store the volume of a box here
// box 1 specification
Box1.height = 5.0;
Box1.length = 6.0;
Box1.breadth = 7.0;
// box 2 specification
Box2.height = 10.0;
Box2.length = 12.0;
Box2.breadth = 13.0;
// volume of box 1
volume = Box1.height * Box1.length * Box1.breadth;
cout << "Volume of Box1 : " << volume <<endl;
// volume of box 2
volume = Box2.height * Box2.length * Box2.breadth;
cout << "Volume of Box2 : " << volume <<endl;
return 0;
}
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Volume of Box1 : 210
Volume of Box2 : 1560
È importante notare che non è possibile accedere direttamente ai membri privati e protetti utilizzando l'operatore di accesso diretto ai membri (.). Impareremo come accedere ai membri privati e protetti.
Classi e oggetti in dettaglio
Finora, hai un'idea molto semplice delle classi e degli oggetti C ++. Ci sono ulteriori concetti interessanti relativi alle classi e agli oggetti C ++ che discuteremo in varie sottosezioni elencate di seguito:
Suor n | Concetto e descrizione |
---|---|
1 | Funzioni dei membri della classe
Una funzione membro di una classe è una funzione che ha la sua definizione o il suo prototipo all'interno della definizione della classe come qualsiasi altra variabile. |
2 | Modificatori di accesso alle classi
Un membro della classe può essere definito come pubblico, privato o protetto. Per impostazione predefinita, i membri sarebbero considerati privati. |
3 | Costruttore e distruttore
Un costruttore di classi è una funzione speciale in una classe che viene chiamata quando viene creato un nuovo oggetto della classe. Un distruttore è anche una funzione speciale che viene chiamata quando l'oggetto creato viene cancellato. |
4 | Copia costruttore
Il costruttore di copia è un costruttore che crea un oggetto inizializzandolo con un oggetto della stessa classe, che è stato creato in precedenza. |
5 | Funzioni amico
UN friend alla funzione è consentito l'accesso completo ai membri privati e protetti di una classe. |
6 | Funzioni inline
Con una funzione inline, il compilatore tenta di espandere il codice nel corpo della funzione al posto di una chiamata alla funzione. |
7 | questo puntatore
Ogni oggetto ha un puntatore speciale this che punta all'oggetto stesso. |
8 | Puntatore alle classi C ++
Un puntatore a una classe viene eseguito esattamente allo stesso modo di un puntatore a una struttura. In effetti una classe è in realtà solo una struttura con funzioni al suo interno. |
9 | Membri statici di una classe
Sia i membri dati che i membri funzione di una classe possono essere dichiarati come statici. |