logo

Concetti di OOP C++

Lo scopo principale della programmazione C++ è introdurre il concetto di orientamento agli oggetti nel linguaggio di programmazione C.

La programmazione orientata agli oggetti è un paradigma che fornisce molti concetti come ereditarietà, associazione di dati, polimorfismo ecc.

Il paradigma di programmazione in cui tutto è rappresentato come un oggetto è noto come linguaggio di programmazione veramente orientato agli oggetti. Chiacchiere è considerato il primo linguaggio di programmazione veramente orientato agli oggetti.


OOP (sistema di programmazione orientato agli oggetti)

Oggetto indica un'entità verbale reale come penna, sedia, tavolo, ecc. Programmazione orientata agli oggetti è una metodologia o paradigma per progettare un programma utilizzando classi e oggetti. Semplifica lo sviluppo e la manutenzione del software fornendo alcuni concetti:

file con estensione java
Cpp Oops concetto 1
  • Oggetto
  • Classe
  • Eredità
  • Polimorfismo
  • Astrazione
  • Incapsulamento

Oggetto

Qualsiasi entità dotata di stato e comportamento è nota come oggetto. Ad esempio: sedia, penna, tavolo, tastiera, bicicletta, ecc. Può essere fisico e logico.

Classe

Raccolta di oggetti si chiama classe. È un'entità logica.

Una classe in C++ è l'elemento fondamentale che porta alla programmazione orientata agli oggetti. È necessario creare un'istanza della classe per accedere e utilizzare i membri dati e le funzioni membro del tipo di dati definito dall'utente. La classe di un oggetto funge da modello. Prendiamo ad esempio la classe delle automobili. Anche se per automobili diverse possono essere utilizzati nomi e marchi diversi, tutte avranno alcune caratteristiche in comune, come le quattro ruote, un limite di velocità, un'autonomia di chilometri, ecc. In questo caso, la classe dell'auto è rappresentata da le ruote, i limiti di velocità e il chilometraggio.

Eredità

Quando un oggetto acquisisce tutte le proprietà e i comportamenti dell'oggetto genitore cioè noto come eredità. Fornisce la riusabilità del codice. Viene utilizzato per ottenere il polimorfismo di runtime.

  1. Sottoclasse: la sottoclasse o classe derivata si riferisce a una classe che riceve proprietà da un'altra classe.
  2. Super classe: il termine 'Classe base' o 'Super classe' si riferisce alla classe da cui una sottoclasse eredita le sue proprietà.
  3. Riusabilità - Di conseguenza, quando desideriamo creare una nuova classe, ma una classe esistente contiene già parte del codice di cui abbiamo bisogno, possiamo generare la nostra nuova classe dalla vecchia classe grazie all'ereditarietà. Questo ci permette di utilizzare i campi e i metodi della classe preesistente.

Polimorfismo

Quando un compito viene eseguito in modi diversi cioè noto come polimorfismo. Ad esempio: convincere il cliente in modo diverso, disegnare qualcosa ad es. forma o rettangolo ecc.

differenza tra azienda e azienda

Situazioni diverse possono far sì che un'operazione si comporti diversamente. Il tipo di dati utilizzati nell'operazione determina il comportamento.

Astrazione

Nascondere i dettagli interni e mostrare la funzionalità è noto come astrazione. L'astrazione dei dati è il processo di esposizione al mondo esterno solo delle informazioni assolutamente necessarie nascondendo l'implementazione o le informazioni di base. Ad esempio: telefonata, non conosciamo l'elaborazione interna.

In C++ utilizziamo classi e interfacce astratte per ottenere l'astrazione.

Incapsulamento

Il collegamento (o il confezionamento) di codice e dati in una singola unità è noto come incapsulamento. Ad esempio: capsula, è avvolta con diversi medicinali.

L'incapsulamento è generalmente inteso come il raggruppamento di informazioni e dati correlati in un'unica entità. L'incapsulamento è il processo di collegamento dei dati e delle funzioni che interagiscono con essi nella programmazione orientata agli oggetti. Dai un'occhiata a un esempio pratico di incapsulamento: in un'azienda ci sono varie divisioni, tra cui la divisione vendite, la divisione finanziaria e la divisione contabilità. Tutte le transazioni finanziarie sono gestite dal settore finanziario, che conserva anche i registri di tutti i dati finanziari. Allo stesso modo, la sezione vendite è responsabile di tutte le attività relative alle vendite e mantiene un registro di ogni vendita. Ora, potrebbe verificarsi uno scenario in cui, per qualche motivo, un funzionario finanziario richiede tutte le informazioni sulle vendite per un mese specifico. Sotto il termine generico 'sezione vendite' vengono raggruppati tutti i dipendenti che possono influenzare i dati della sezione vendite. L'astrazione o l'occultamento dei dati è un altro effetto collaterale dell'incapsulamento. Allo stesso modo l'incapsulamento nasconde i dati. Nell'esempio sopra citato, qualsiasi altra area non può accedere ai dati di nessuna delle sezioni, come vendite, finanza o contabilità.

Legame dinamico - Nell'associazione dinamica, in fase di esecuzione viene presa una decisione relativa al codice che verrà eseguito in risposta a una chiamata di funzione. Per questo, C++ supporta le funzioni virtuali.

Vantaggio degli OOP rispetto al linguaggio di programmazione orientato alle procedure

  1. Gli OOP semplificano lo sviluppo e la manutenzione laddove, come nel linguaggio di programmazione orientato alle procedure, non è facile da gestire se il codice cresce man mano che crescono le dimensioni del progetto.
  2. Gli OOP forniscono l'occultamento dei dati mentre nel linguaggio di programmazione orientato alle procedure è possibile accedere ai dati globali da qualsiasi luogo.
  3. Gli OOP offrono la possibilità di simulare eventi del mondo reale in modo molto più efficace. Possiamo fornire la soluzione del problema della parola reale se utilizziamo il linguaggio di programmazione orientato agli oggetti.

Perché abbiamo bisogno degli oops in C++?

I primi metodi di programmazione presentavano vari inconvenienti, oltre a scarse prestazioni. L'approccio non poteva affrontare in modo efficace i problemi del mondo reale poiché, analogamente alla programmazione orientata alle procedure, non era possibile riutilizzare nuovamente il codice all'interno del programma, c'era una difficoltà con l'accesso ai dati globali e così via.

Con l'uso di classi e oggetti, la programmazione orientata agli oggetti semplifica la manutenzione del codice. Poiché l'ereditarietà consente il riutilizzo del codice, il programma è più semplice poiché non è necessario scrivere ripetutamente lo stesso codice. L'occultamento dei dati è fornito anche da idee come l'incapsulamento e l'astrazione.

dividere le stringhe c++

Perché il C++ è un oop parziale?

Le caratteristiche orientate agli oggetti del linguaggio C sono state la motivazione principale dietro la costruzione del linguaggio C++.

Il linguaggio di programmazione C++ è classificato come un linguaggio di programmazione parzialmente orientato agli oggetti nonostante supporti i concetti di OOP, inclusi classi, oggetti, ereditarietà, incapsulamento, astrazione e polimorfismo.

1) La funzione main deve essere sempre esterna alla classe in C++ ed è obbligatoria. Ciò significa che potremmo fare a meno di classi e oggetti e avere un'unica funzione principale nell'applicazione.

In questo caso viene espresso come oggetto, che è la prima volta che Pure OOP viene violato.

2) Le variabili globali sono una caratteristica del linguaggio di programmazione C++ a cui è possibile accedere da qualsiasi altro oggetto all'interno del programma e sono definite al di fuori di esso. L'incapsulamento è interrotto qui. Anche se il C++ incoraggia l'incapsulamento per classi e oggetti, lo ignora per le variabili globali.

Sovraccarico

Il polimorfismo ha anche un sottoinsieme noto come sovraccarico. Si dice che un operatore o una funzione esistente siano sovraccarichi quando sono costretti a operare su un nuovo tipo di dati.

Conclusione

Dopo aver letto questo corso sui concetti OOPS in C++, avrai acquisito una comprensione della necessità della programmazione orientata agli oggetti, di cosa sono gli OOP C++ e dei fondamenti degli OOP, come polimorfismo, ereditarietà, incapsulamento, ecc. Oltre agli esempi di polimorfismo ed ereditarietà, hai anche appreso i vantaggi degli OOP C++.