object oriented programming c
Introduzione alla programmazione orientata agli oggetti in C ++.
Con questo tutorial, stiamo iniziando una serie di tutorial per imparare a conoscere C ++ come linguaggio di programmazione orientato agli oggetti.
Come sappiamo, prima della programmazione orientata agli oggetti (OOP), i programmi venivano scritti utilizzando linguaggi procedurali. I linguaggi procedurali sottolineano le funzioni. I problemi più grandi sono suddivisi in sottoproblemi più piccoli e scritti come funzioni.
=> Vedi qui per esplorare l'elenco completo dei tutorial C ++.
I linguaggi procedurali non prestavano attenzione ai dati. Di conseguenza, la possibilità di non affrontare il problema in modo efficace era elevata. Inoltre, poiché i dati venivano quasi trascurati, la sicurezza dei dati veniva facilmente compromessa.
Tutti questi inconvenienti della programmazione procedurale sono stati superati dalla programmazione orientata agli oggetti.
In questo tutorial, discuteremo i fondamenti della programmazione orientata agli oggetti e in breve tutte le caratteristiche di OOP.
Cosa imparerai:
- Programmazione orientata agli oggetti in C ++
- Perché C ++ è OOP parziale?
- Funzionalità OOP
- Vantaggi di OOP
- Conclusione
- Lettura consigliata
Programmazione orientata agli oggetti in C ++
La programmazione orientata agli oggetti ruota attorno ai dati. L'unità di programmazione principale di OOP è l'oggetto. Un oggetto è una rappresentazione di un'entità in tempo reale e consiste di dati e metodi o funzioni che operano sui dati. In questo modo, i dati e le funzioni sono strettamente legati e la sicurezza dei dati è garantita.
In OOP, tutto è rappresentato come un oggetto e quando i programmi vengono eseguiti, gli oggetti interagiscono tra loro passando messaggi. Un oggetto non ha bisogno di conoscere i dettagli di implementazione di un altro oggetto per comunicare.
Oltre agli oggetti, OOP supporta varie funzionalità elencate di seguito:
- Classi
- Incapsulamento
- Astrazione
- Eredità
- Polimorfismo
Utilizzando OOP, scriviamo programmi utilizzando classi e oggetti utilizzando le funzionalità di cui sopra. Si dice che un linguaggio di programmazione sia un vero linguaggio di programmazione orientato agli oggetti se tutto ciò che rappresenta utilizza un oggetto. Smalltalk è un linguaggio che è un puro linguaggio di programmazione orientato agli oggetti.
D'altra parte, si dice che linguaggi di programmazione come C ++ e Java siano linguaggi di programmazione parzialmente orientati agli oggetti.
Perché C ++ è OOP parziale?
Il linguaggio C ++ è stato progettato con l'intenzione principale di utilizzare funzionalità orientate agli oggetti nel linguaggio C.
Sebbene il linguaggio C ++ supporti le funzionalità di OOP come classi, oggetti, ereditarietà, incapsulamento, astrazione e polimorfismo, ci sono pochi motivi per cui il C ++ è classificato come un linguaggio di programmazione orientato agli oggetti parziale.
miglior convertitore gratuito da dvd ad avi
Di seguito presentiamo alcuni di questi motivi:
# 1) La creazione di classi / oggetti è facoltativa
In C ++, la funzione main è obbligatoria ed è sempre al di fuori della classe. Quindi, possiamo avere solo una funzione principale nel programma e possiamo fare a meno di classi e oggetti.
Questa è la prima violazione del linguaggio Pure OOP in cui tutto è rappresentato come un oggetto.
# 2) Uso di variabili globali
C ++ ha un concetto di variabili globali che sono dichiarate al di fuori del programma e sono accessibili da qualsiasi altra entità del programma. Ciò viola l'incapsulamento. Sebbene C ++ supporti l'incapsulamento rispetto a classi e oggetti, non se ne occupa in caso di variabili globali.
# 3) Presenza di una funzione amico
C ++ supporta una classe o una funzione amico che può essere utilizzata per accedere a membri privati e protetti di altre classi rendendoli amici. Questa è ancora un'altra caratteristica di C ++ che viola il paradigma OOP.
Per concludere, sebbene C ++ supporti tutte le funzionalità OOP sopra menzionate, fornisce anche funzionalità che possono fungere da soluzione alternativa per queste funzionalità, in modo che possiamo farne a meno. Ciò rende C ++ un linguaggio di programmazione orientato agli oggetti parziale.
Funzionalità OOP
Qui introdurremo varie funzionalità OOP utilizzate per la programmazione.
Classi e oggetti
Un oggetto è un'unità di base nella programmazione orientata agli oggetti. Un oggetto contiene dati e metodi o funzioni che operano su quei dati. Gli oggetti occupano spazio nella memoria.
Una classe, d'altra parte, è un modello dell'oggetto. Al contrario, un oggetto può essere definito come un'istanza di una classe. Una classe contiene uno scheletro dell'oggetto e non occupa spazio nella memoria.
Prendiamo un file Esempio di un oggetto auto. Un oggetto automobile denominato 'Maruti' può avere dati come il colore; marca, modello, limite di velocità, ecc. e funzioni come accelerazione. Definiamo un altro oggetto “guado”. Questo può avere dati e funzioni simili a quelli dell'oggetto precedente più alcune ulteriori aggiunte.
Allo stesso modo, possiamo avere numerosi oggetti con nomi diversi con dati e funzioni simili e alcune variazioni minori.
Quindi, invece di definire questi dati e funzioni simili in questi diversi oggetti, definiamo un progetto di questi oggetti che è una classe chiamata Car. Ciascuno degli oggetti sopra saranno istanze di questa macchina di classe.
Astrazione
L'astrazione è il processo di occultamento di informazioni irrilevanti all'utente. Per esempio , quando guidiamo l'auto, per prima cosa accendiamo il motore inserendo una chiave. Non siamo a conoscenza del processo che avviene in background per avviare il motore.
Usando l'astrazione nella programmazione, possiamo nascondere all'utente dettagli non necessari. Utilizzando l'astrazione nella nostra applicazione, l'utente finale non viene influenzato anche se cambiamo l'implementazione interna.
Incapsulamento
L'incapsulamento è il processo che utilizza i dati e i metodi o le funzioni che operano su di essi vengono raggruppati insieme. In questo modo, i dati non sono facilmente accessibili al mondo esterno. In OOP otteniamo l'incapsulamento rendendo i membri dati privati e disponendo di funzioni pubbliche per accedere a questi membri dati.
Eredità
Utilizzando l'ereditarietà dell'oggetto di una classe è possibile ereditare o acquisire le proprietà dell'oggetto di un'altra classe. L'ereditarietà fornisce la riusabilità del codice.
Pertanto, possiamo progettare una nuova classe acquisendo le proprietà e le funzionalità di un'altra classe e in questo processo non è necessario modificare la funzionalità della classe genitore. Aggiungiamo solo nuove funzionalità alla classe.
Polimorfismo
Il polimorfismo significa molte forme.
Il polimorfismo è una caratteristica importante dell'OOP e viene solitamente implementato come sovraccarico dell'operatore o sovraccarico della funzione. Il sovraccarico degli operatori è un processo in cui un operatore si comporta in modo diverso in situazioni diverse. Allo stesso modo, nel sovraccarico di funzioni, la stessa funzione si comporta in modo diverso in situazioni diverse.
Associazione dinamica
OOP supporta l'associazione dinamica in cui la chiamata di funzione viene risolta in fase di esecuzione. Ciò significa che il codice da eseguire come risultato di una chiamata di funzione viene deciso in fase di esecuzione. Le funzioni virtuali sono un esempio di associazione dinamica.
Passaggio del messaggio
In OOP, gli oggetti comunicano tra loro utilizzando i messaggi. Quando gli oggetti comunicano, le informazioni vengono trasmesse avanti e indietro tra gli oggetti. Un messaggio è generalmente costituito dal nome dell'oggetto, dal nome del metodo e dai dati effettivi che devono essere inviati a un altro oggetto.
Vantaggi di OOP
Cerchiamo di discutere alcuni dei vantaggi di OOP.
algoritmo di ordinamento della shell c ++
# 1) Riusabilità
OOP consente di riutilizzare il codice esistente tramite ereditarietà. Possiamo facilmente acquisire la funzionalità esistente e migliorarla senza dover riscrivere nuovamente il codice. Ciò si traduce in un codice meno gonfio.
# 2) Modularità
Poiché modulizziamo il programma in OOP, è facile modificare o risolvere i problemi del programma se si verifica un problema o è necessario aggiungere nuove funzionalità o miglioramenti. La modularizzazione aiuta anche nella chiarezza del codice e lo rende più leggibile.
# 3) Flessibilità
OOP ci aiuta con la programmazione flessibile utilizzando la funzione polimorfismo. Poiché il polimorfismo assume molte forme, possiamo avere operatori o funzioni che funzioneranno con molti oggetti e quindi ci eviteranno di scrivere funzioni diverse per ogni oggetto.
# 4) Manutenibilità
La manutenzione del codice è più semplice in quanto è facile aggiungere nuove classi, oggetti, ecc. Senza molte ristrutturazioni o modifiche.
# 5) Dati e informazioni nascoste
OOP ci aiuta a nascondere i dati, proteggendo così le informazioni dalla fuga. Solo i dati necessari per il corretto funzionamento del programma vengono esposti all'utente nascondendo i dettagli intrinseci.
Conclusione
OOP è il paradigma di programmazione più importante e flessibile della programmazione moderna. È particolarmente utile per modellare i problemi del mondo reale ed è quindi molto popolare.
Abbiamo discusso le varie funzionalità di OOP in questo tutorial. Andando avanti discuteremo tutte queste funzionalità in dettaglio.
Il prossimo argomento di questa serie 'OOP con C ++' si concentrerà su classi e oggetti in dettaglio.
=> Fare clic qui per la serie di formazione Absolute C ++.
Lettura consigliata
- Java OOP: Introduzione alla programmazione orientata agli oggetti in Java
- Tipi di dati C ++
- I 10 migliori strumenti di data science nel 2021 per eliminare la programmazione
- Astrazione dei dati in C ++
- Introduzione alle strutture dati in C ++
- Tutorial su Unix Pipes: Pipes nella programmazione Unix
- Tutorial QTP n. 8 - Informazioni sulle modalità di registrazione QTP, spia di oggetti e archivi di oggetti
- 70+ MIGLIORI tutorial C ++ per imparare la programmazione C ++ GRATUITAMENTE