Classe e oggetto C ++ con esempio

Sommario:

Anonim

Cos'è una classe?

Una classe C ++ combina dati e metodi per manipolare i dati in uno solo. Le classi determinano anche le forme degli oggetti. I dati e i metodi contenuti in una classe sono noti come membri della classe. Una classe è un tipo di dati definito dall'utente. Per accedere ai membri della classe, utilizziamo un'istanza della classe. Puoi vedere una classe come un progetto per un oggetto.

Una classe può essere un prototipo di una casa. Mostra la posizione e le dimensioni di porte, finestre, pavimenti, ecc. Da queste descrizioni possiamo costruire una casa. La casa diventa l'oggetto. È possibile creare molte case dal prototipo. Inoltre, è possibile creare molti oggetti da una classe.

Nella figura sopra, abbiamo un prototipo di casa singola. Da questo prototipo, abbiamo creato due case con caratteristiche diverse.

In questo tutorial imparerai:

  • Cos'è una classe?
  • Esempio di classe
  • Parole chiave private e pubbliche
  • Definizione dell'oggetto
  • Accesso ai membri dei dati
  • Funzioni dei membri della classe
  • Costruttori e distruttori

Dichiarazione di classe

In C +, una classe viene definita utilizzando la parola chiave class. Dovrebbe essere seguito dal nome della classe. Il corpo della classe viene quindi aggiunto tra parentesi graffe {}.

Sintassi:

class class-name{// data// functions};
  • Il nome della classe è il nome da assegnare alla classe.
  • I dati sono i dati per la classe, normalmente dichiarati come variabili.
  • Le funzioni sono le funzioni di classe.

Parole chiave private e pubbliche

Devi esserti imbattuto in queste due parole chiave. Sono modificatori di accesso.

  • Privato:

Quando la parola chiave private viene utilizzata per definire una funzione o una classe, diventa privata. Tali sono accessibili solo dall'interno della classe.

  • Pubblico:

La parola chiave public, d'altra parte, rende pubblici dati / funzioni. Questi sono accessibili dall'esterno della classe.

Definizione dell'oggetto

Gli oggetti vengono creati dalle classi. Gli oggetti di classe vengono dichiarati in modo simile a come vengono dichiarate le variabili. Il nome della classe deve iniziare, seguito dal nome dell'oggetto. L'oggetto del tipo di classe.

Sintassi:

class-name object-name;
  • Il nome della classe è il nome della classe da cui deve essere creato un oggetto.
  • Il nome dell'oggetto è il nome da assegnare al nuovo oggetto.

Questo processo di creazione di un oggetto da una classe è noto come istanziazione.

Accesso ai membri dei dati

Per accedere ai membri pubblici di una classe, usiamo l'operatore punto (.). Questi sono membri contrassegnati con un modificatore di accesso pubblico.

Esempio 1:

#include using namespace std;class Phone {public:double cost;int slots;};int main() {Phone Y6;Phone Y7;Y6.cost = 100.0;Y6.slots = 2;Y7.cost = 200.0;Y7.slots = 2;cout << "Cost of Huawei Y6 : " << Y6.cost << endl;cout << "Cost of Huawei Y7 : " << Y7.cost << endl;cout << "Number of card slots for Huawei Y6 : " << Y6.slots << endl;cout << "Number of card slots for Huawei Y7 : " << Y7.slots << endl;return 0;}

Produzione:

Ecco uno screenshot del codice:

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro codice per poter utilizzare le sue funzioni.
  2. Includere lo spazio dei nomi std nel nostro codice per usare le sue classi senza chiamarlo.
  3. Dichiara una classe denominata Phone.
  4. Utilizzo del modificatore di accesso pubblico per contrassegnare le variabili che stiamo per creare come accessibili pubblicamente.
  5. Dichiarare il costo variabile di un doppio tipo di dati.
  6. Dichiarare una variabile intera denominata slots.
  7. Fine del corpo della classe.
  8. Chiamare la funzione main (). La logica del programma dovrebbe essere aggiunta all'interno del suo corpo.
  9. Crea un oggetto denominato Y6 di tipo Telefono. Questa è chiamata istanziazione.
  10. Crea un oggetto denominato Y7 di tipo Telefono. Questa è chiamata istanziazione.
  11. Accedere alla variabile / costo membro della classe Phone utilizzando l'oggetto Y6. Il valore è impostato su 100,0. Il costo di Y6 è ora impostato su 100,0.
  12. Accedi agli slot variabili / membri della classe Phone utilizzando l'oggetto Y6. Il valore è impostato su 2. Gli slot per Y6 sono ora impostati su 2.
  13. Accedere alla variabile / costo membro della classe Phone utilizzando l'oggetto Y7. Il valore è impostato su 200,0. Il costo di Y7 è ora impostato su 200,0.
  14. Accedere agli slot variabili / membri della classe Phone utilizzando l'oggetto Y7. Il valore è impostato su 2. Gli slot per Y7 sono ora impostati su 2.
  15. Stampa il costo di Y6 sulla console insieme ad altro testo.
  16. Stampa il costo di Y7 sulla console insieme ad altro testo.
  17. Stampa il numero di slot per Y6 insieme ad altro testo.
  18. Stampa il numero di slot per Y7 insieme ad altro testo.
  19. Il programma deve restituire un valore dopo il completamento con successo.
  20. Fine del corpo della funzione main ().

Cos'è una lezione privata?

È possibile accedere ai membri della classe contrassegnati come privati ​​solo dalle funzioni definite all'interno della classe. Qualsiasi oggetto o funzione definita all'esterno della classe non può accedere direttamente a tali membri. Un membro della classe privata è accessibile solo dalle funzioni membro e amico.

Cos'è una classe protetta?

I membri della classe contrassegnati come protetti hanno un vantaggio rispetto a quelli contrassegnati come privati. È possibile accedervi dalle funzioni all'interno della classe della loro definizione. Inoltre, è possibile accedervi dalle classi derivate.

Esempio 2:

#include using namespace std;class ClassA {public:void set_a(int val);int get_a(void);private:int a;};int ClassA::get_a(void) {return a;}void ClassA::set_a(int val) {a = val;}int main() {ClassA a;a.set_a(20);cout << "Value of a is: " << a.get_a();return 0;}

Produzione:

Ecco uno screenshot del codice:

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro codice per utilizzare le sue funzioni.
  2. Includere lo spazio dei nomi std nel nostro codice per utilizzare le sue classi senza chiamarlo.
  3. Crea una classe denominata ClassA.
  4. Utilizza il modificatore di accesso pubblico per contrassegnare il membro della classe da creare come accessibile pubblicamente.
  5. Crea la funzione denominata set_a () che accetta un valore intero val.
  6. Crea una funzione chiamata get_a ().
  7. Utilizza il modificatore di accesso privato per contrassegnare il membro della classe da creare come accessibile privatamente.
  8. Dichiarare una variabile intera denominata a.
  9. Fine del corpo della classe.
  10. Utilizzare il nome della classe e l'operatore di risoluzione dell'ambito per accedere alla funzione get_a (). Vogliamo definire cosa fa la funzione quando invocata.
  11. La funzione get_a () dovrebbe restituire il valore della variabile a quando invocata.
  12. Fine della definizione della funzione get_a ().
  13. Utilizzare il nome della classe e l'operatore di risoluzione dell'ambito per accedere alla funzione set_a (). Vogliamo definire cosa fa la funzione quando invocata.
  14. Assegnando il valore della variabile val alla variabile a.
  15. Fine della definizione della funzione set_a ().
  16. Chiama la funzione main (). La logica del programma dovrebbe essere aggiunta all'interno del corpo di questa funzione.
  17. Crea un'istanza di ClassA e assegnagli il nome a.
  18. Usa l'istanza di classe sopra e la funzione set_a () per assegnare un valore di 20 alla variabile a.
  19. Stampa del testo accanto al valore della variabile a sulla console. Il valore della variabile a si ottiene chiamando la funzione get_a ().
  20. Il programma deve restituire un valore una volta completato con successo.
  21. Fine del corpo della funzione main ().

Esempio 3:

#include using namespace std;class ParentClass {protected:int value;};class ChildClass : public ParentClass {public:void setId(int x) {value = x;}void displayValue() {cout << "Value is: " << value << endl;}};int main() {ChildClass c;c.setId(21);c.displayValue();return 0;}

Produzione:

Ecco uno screenshot del codice:

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro codice per utilizzare le sue funzioni.
  2. Includere lo spazio dei nomi std nel nostro codice per utilizzare le sue classi senza chiamarlo.
  3. Crea una classe denominata ParentClass.
  4. Utilizzare il modificatore di accesso protetto per contrassegnare il membro della classe da creare come protetto.
  5. Crea una variabile intera denominata value.
  6. Fine del corpo della classe.
  7. Crea una nuova classe denominata ChildClass che eredita ParentClass.
  8. Utilizzare il modificatore di accesso protetto per contrassegnare il membro della classe da creare come accessibile alle classi figlie.
  9. Crea la funzione denominata setId () che accetta un valore intero x.
  10. Assegnare il valore della variabile x al valore della variabile.
  11. Fine della definizione della funzione setId ().
  12. Crea una funzione chiamata displayValue ().
  13. Stampa il valore della variabile denominata valore sulla console insieme ad altro testo.
  14. Fine del corpo della funzione displayValue ().
  15. Fine del corpo della classe denominata ChildClass.
  16. Chiama la funzione main (). La logica del programma dovrebbe essere aggiunta all'interno del corpo di questa funzione.
  17. Crea un'istanza di ChildClass e assegnagli il nome c.
  18. Utilizzare l'istanza di classe sopra e la funzione setId () per assegnare un valore di 21 alla variabile x.
  19. Utilizzare l'istanza della classe precedente per chiamare la funzione denominata displayValue ().
  20. Il programma deve restituire un valore una volta completato con successo.
  21. Fine del corpo della funzione main ().

Funzioni dei membri della classe

Le funzioni ci aiutano a manipolare i dati. Le funzioni dei membri della classe possono essere definite in due modi:

  • All'interno della definizione della classe
  • Fuori dalla definizione di classe

Se una funzione deve essere definita al di fuori di una definizione di classe, è necessario utilizzare l'operatore di risoluzione dell'ambito (: :). Dovrebbe essere accompagnato dai nomi delle classi e delle funzioni.

Esempio 2:

#include #include using namespace std;class Guru99{public:string tutorial_name;int id;void printname();void printid(){cout << "Tutorial id is: "<< id;}};void Guru99::printname(){cout << "Tutorial name is: " << tutorial_name;}int main() {Guru99 guru99;guru99.tutorial_name = "C++";guru99.id = 1001;guru99.printname();cout << endl;guru99.printid();return 0;}

Produzione:

Ecco uno screenshot del codice:

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro programma per utilizzare le sue funzioni.
  2. Includere il file di intestazione della stringa nel nostro programma per utilizzare le sue funzioni.
  3. Includere lo spazio dei nomi std nel nostro codice per utilizzare le sue classi senza chiamarlo.
  4. Crea una classe chiamata Guru99.
  5. Usa il modificatore di accesso pubblico per contrassegnare i membri della classe che stiamo per creare come accessibili pubblicamente.
  6. Crea una variabile di stringa denominata tutorial_name.
  7. Crea una variabile intera denominata id.
  8. Crea una funzione chiamata printname (). Questa funzione non è definita nella definizione della classe.
  9. Crea una funzione chiamata printed (). Questa funzione è definita all'interno della definizione della classe. Il suo corpo è stato aggiunto nella definizione della classe.
  10. Stampa il valore della variabile id insieme ad altro testo sulla console. Nota che questo è stato aggiunto all'interno del corpo della funzione printid (). Verrà eseguito solo quando viene chiamata la funzione printid ().
  11. Fine del corpo della funzione printid ().
  12. Fine del corpo della classe Guru99.
  13. L'inizio della definizione della funzione printname ().
  14. Stampa il valore della variabile nome_tutorial sulla console insieme ad altro testo. Nota che questo è stato aggiunto all'interno del corpo della funzione printname (). Verrà eseguito solo quando viene chiamata la funzione printname ().
  15. Fine della definizione della funzione printname ().
  16. Chiama la funzione main (). La logica del programma dovrebbe essere aggiunta all'interno del corpo di questa funzione.
  17. Crea un'istanza della classe Guru99 e assegnandole il nome guru99.
  18. Usa l'istanza precedente per assegnare un valore di C ++ alla variabile nome_tutorial.
  19. Utilizza l'istanza guru99 per assegnare un valore di 1001 alla variabile id.
  20. Usa l'istanza guru99 per chiamare la funzione printname ().
  21. Chiama il comando end (end line) per stampare una nuova riga vuota sulla console.
  22. Usa l'istanza guru99 per chiamare la funzione printid ().
  23. Il programma deve restituire un valore una volta completato con successo.
  24. Fine del corpo della funzione main ().

Costruttori e distruttori

Cosa sono i costruttori?

I costrutti sono funzioni speciali che inizializzano gli oggetti. I compilatori C ++ chiamano un costruttore durante la creazione di un oggetto. I costruttori aiutano ad assegnare valori ai membri della classe. Ovviamente, questo avviene dopo che è stato allocato dello spazio di memoria.

Cosa sono i distruttori?

I distruttori d'altro canto aiutano a distruggere gli oggetti di classe.

Il nome del costruttore deve essere simile al nome della classe. I costruttori non hanno un tipo restituito.

Il costruttore può essere definito all'interno o all'esterno del corpo della classe. Se definito al di fuori del corpo della classe, dovrebbe essere definito con il nome della classe e l'operatore di risoluzione dell'ambito (: :).

Esempio 3:

#include using namespace std;class ClassA {public:ClassA() {cout << "Class constructor called"<

Produzione:

Ecco uno screenshot del codice:

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel codice per utilizzare le sue funzioni.
  2. Includere lo spazio dei nomi std nel nostro codice per utilizzare le sue classi senza chiamarlo.
  3. Crea una classe denominata ClassA.
  4. Utilizza il modificatore di accesso pubblico per contrassegnare il membro che stiamo per creare come accessibile pubblicamente.
  5. Crea un costruttore per la classe.
  6. Testo da stampare sulla console quando viene chiamato il costruttore. Endl è una parola chiave C ++, che significa end line. Sposta il cursore del mouse sulla riga successiva.
  7. Fine del corpo del costruttore della classe.
  8. Crea un distruttore per la classe.
  9. Testo da stampare sulla console quando viene chiamato il distruttore. Endl è una parola chiave C ++, che significa end line. Sposta il cursore del mouse sulla riga successiva.
  10. Fine del corpo del distruttore.
  11. Fine del corpo della classe.
  12. Chiama la funzione main (). La logica del programma dovrebbe essere aggiunta all'interno del corpo di questa funzione.
  13. Crea un oggetto classe e dagli il nome a. Verrà chiamato il costruttore.
  14. Crea una variabile intera denominata p e assegnale un valore di 1.
  15. Creare un blocco di istruzioni if ​​utilizzando la variabile p.
  16. Crea un oggetto classe e dagli il nome b. Il distruttore verrà chiamato.
  17. Fine del corpo dell'istruzione if.
  18. Fine del corpo della funzione main ().

Sommario:

  • Il C ++ è orientato agli oggetti.
  • Le classi costituiscono le caratteristiche principali di C ++ che lo rendono orientato agli oggetti.
  • Una classe C ++ combina dati e metodi per manipolare i dati in uno solo.
  • Una classe è un progetto per un oggetto.
  • Le classi determinano la forma di un oggetto.
  • I dati e i metodi contenuti in una classe sono noti come membri della classe.
  • Per accedere ai membri della classe, è necessario utilizzare un'istanza della classe.
  • Per creare una classe, usiamo la parola chiave class.
  • Le funzioni dei membri della classe possono essere definite all'interno o all'esterno di una classe.