data abstraction c
Tutto quello che devi sapere sull'astrazione in C ++.
In questa serie di tutorial in C ++ impareremo tutti i principali concetti della programmazione orientata agli oggetti in C ++, noti come i quattro pilastri dell'OOP.
- Astrazione
- Incapsulamento
- Eredità
- Polimorfismo
In questo tutorial, esploreremo tutto sull'astrazione dei dati in C ++.
come impostare la griglia del selenio
=> Fare clic qui per la serie di formazione Absolute C ++.
Cosa imparerai:
- Cos'è l'astrazione?
- Implementazione dell'astrazione in C ++
- Vantaggi dell'astrazione
- Conclusione
- Lettura consigliata
Cos'è l'astrazione?
L'astrazione è una tecnica di programmazione orientata agli oggetti utilizzando la quale nascondiamo i dettagli dell'implementazione all'utente ed esponiamo solo un'interfaccia richiesta.
Possiamo prendere un esempio reale di un condizionatore d'aria (AC). Abbiamo un telecomando per controllare le varie funzioni AC come avvio, arresto, aumento / diminuzione della temperatura, controllo dell'umidità, ecc. Possiamo controllare queste funzioni solo con un orologio di un pulsante ma internamente c'è una logica complessa che è implementato per eseguire queste funzioni.
Tuttavia, come utente finale, ciò a cui siamo esposti è solo l'interfaccia remota e non i dettagli di implementazione di tutte queste funzioni.
L'astrazione è uno dei quattro pilastri della programmazione orientata agli oggetti e quasi tutte le soluzioni OOP si basano sui principi di astrazione, ovvero separazione dell'interfaccia e dettagli di implementazione nel programma.
Nel diagramma sopra, abbiamo mostrato un oggetto e il suo contenuto come rappresentazione pittorica. Possiamo vedere che lo strato più interno di questo oggetto è la sua funzionalità principale seguita dai dettagli di implementazione.
In OOP, questi due livelli (sebbene nella maggior parte dei casi questo sia solo uno) non sono esposti al mondo esterno. Il livello più esterno, l'interfaccia, è il livello fornito all'utente finale per accedere alla funzionalità dell'oggetto.
Di conseguenza, qualsiasi modifica apportata agli strati più interni dell'oggetto non è evidente per un utente finale fintanto che l'interfaccia a cui è esposto l'utente rimane la stessa.
Implementazione dell'astrazione in C ++
C ++ supporta l'astrazione a una grande profondità. In C ++ anche le funzioni di libreria che usiamo possono essere considerate come un esempio di astrazione.
Possiamo rappresentare l'implementazione dell'astrazione in C ++ come segue:
Come mostrato nella figura sopra, possiamo implementare l'astrazione in C ++ in due modi:
# 1) Utilizzo di classi e specificatori di accesso
Una classe implementata in C ++ con specificatori di accesso public, private e protected, può essere considerata un'implementazione dell'astrazione.
Come già sappiamo, l'uso di specificatori di accesso ci consente di controllare l'accesso dato ai membri della classe. Possiamo rendere privati alcuni membri in modo che siano inaccessibili al di fuori della classe. Alcuni membri possono essere protetti in modo che siano accessibili solo alle classi derivate. Infine, possiamo rendere pubblici alcuni membri in modo che questi membri siano accessibili al di fuori della classe.
Usando questa nozione, possiamo implementare l'astrazione in modo tale che i dettagli di implementazione siano nascosti dal mondo esterno usando lo specificatore di accesso privato mentre l'interfaccia può essere esposta al mondo esterno usando lo specificatore pubblico.
Quindi, possiamo implementare l'astrazione in C ++, usando una classe per raggruppare dati e funzioni in una singola unità e usando specificatori di accesso per controllare l'accesso a questi dati e funzioni.
Implementiamo il seguente esempio per dimostrarlo.
#include #include using namespace std; class sample { int num1,num2; void readNum(){ cout<>num1; cout<>num2; } public: void displaySum() { readNum(); cout<<'
Sum of the two numbers = '< Produzione:
Immettere num1: 10
Immettere num2: 20
domande di intervista pl sql con risposte
Somma dei due numeri = 30
Nel programma sopra, abbiamo una classe di esempio che ha due variabili intere, num1 e num2. Ha anche due funzioni readNum e displaySum. Num1 e num2 dei membri di dati, nonché la funzione readNum, sono privati della classe.
La funzione displaySum è pubblica per la classe. Nella funzione main creiamo un oggetto di classe sample e chiamiamo displaySum che legge i due numeri e ne stampa la somma.
Questa è l'implementazione dell'astrazione. Esponiamo solo una funzione al pubblico mantenendo gli altri membri di dati e funzioni nascosti. Sebbene questo sia solo un esempio per dimostrare l'astrazione, durante l'implementazione di problemi della vita reale, possiamo avere molti livelli di astrazione in C ++.
# 2) Utilizzo dell'implementazione del file di intestazione
Usiamo file di intestazione nel programma C ++ per importare e utilizzare funzioni predefinite. Per questo, usiamo la direttiva #include per includere i file di intestazione nel nostro programma.
Per esempio, nel programma sopra, abbiamo utilizzato le funzioni cin e cout. Per quanto riguarda queste funzioni sappiamo solo come usarle e quali sono i parametri che prendono.
Non sappiamo cosa succede in background quando queste funzioni vengono chiamate o come vengono implementate nel file di intestazione iostream. Questo è un altro modo di astrazione fornito da C ++.
Non conosciamo i dettagli dell'implementazione di tutte le funzioni che importiamo dai file di intestazione.
Ecco un altro esempio per dimostrare l'astrazione.
#include #include using namespace std; class employee{ int empId; string name; double salary,basic,allowances; double calculateSalary(int empId){ salary = basic+allowances; return salary; } public: employee(int empId, string name,double basic,double allowances): empId(empId),name(name),basic(basic),allowances(allowances){ calculateSalary(empId); } void display(){ cout<<'EmpId = '< Produzione:
EmpId = 1 Nome = Ved
Stipendio dei dipendenti = 18245,4

In questo esempio, abbiamo definito un impiegato di classe che ha dettagli privati come empId, nome, dettagli sullo stipendio come base e indennità. Definiamo anche una funzione privata 'calcola stipendio' che calcola lo stipendio utilizzando base e indennità.
Abbiamo un costruttore per inizializzare tutti i dati per un particolare oggetto dipendente. Chiamiamo anche la funzione 'calcola stipendio' dal costruttore per calcolare lo stipendio dell'impiegato attuale.
Successivamente, abbiamo una funzione 'display' che mostra empId, nome e stipendio. Nella funzione principale, creiamo un oggetto di classe dipendente e chiamiamo la funzione di visualizzazione.
Possiamo vedere chiaramente il livello di astrazione che abbiamo fornito in questo programma. Abbiamo nascosto tutti i dettagli del dipendente e la funzione Calcola stipendio all'utente rendendoli privati.
Abbiamo esposto all'utente solo una funzione di visualizzazione che fornisce all'utente tutte le informazioni sull'oggetto dipendente e allo stesso tempo nasconde anche dettagli come i dati privati e il modo in cui calcoliamo lo stipendio del dipendente.
domande sulle funzioni di microsoft excel e sulla sintassi comune
In questo modo, in futuro, se vogliamo aggiungere più dettagli e cambiare il modo in cui viene calcolato lo stipendio, non dobbiamo cambiare la funzione di visualizzazione. L'utente non sarà a conoscenza di queste modifiche.
Vantaggi dell'astrazione
Di seguito sono elencati alcuni dei vantaggi dell'astrazione.
- Il programmatore non ha bisogno di scrivere codice di basso livello.
- L'astrazione protegge l'implementazione interna da errori e usi dannosi.
- L'astrazione può impedire la duplicazione del codice e quindi il programmatore deve eseguire le stesse attività più e più volte.
- L'astrazione promuove il riutilizzo del codice e classifica correttamente i membri dei dati della classe.
- Il programmatore può modificare i dettagli interni dell'implementazione della classe all'insaputa dell'utente finale senza influire sulle operazioni del livello esterno.
Conclusione
L'astrazione è uno dei concetti più importanti in OOP ed è implementata in modo molto approfondito in C ++. Usando l'astrazione, possiamo mantenere i dettagli di implementazione del programma nascosti ed esporre solo i dettagli che vogliamo al mondo esterno.
Usando il concetto di astrazione, possiamo progettare tipi di dati astratti e classi che fungono da scheletro per la soluzione di programmazione sulla quale è costruita un'intera soluzione. Man mano che progrediamo negli argomenti OOP, impareremo di più su questi tipi e classi.
Nei nostri prossimi tutorial, impareremo a conoscere un altro pilastro dell'OOP, ovvero l'incapsulamento. Valuteremo insieme anche l'astrazione e l'incapsulamento.
=> Cerca qui l'intera serie di formazione C ++.
Lettura consigliata
- Tipi di dati C ++
- Incapsulamento in C ++
- I 10 migliori strumenti di data science nel 2021 per eliminare la programmazione
- Programmazione orientata agli oggetti in C ++
- Introduzione alle strutture dati in C ++
- 70+ MIGLIORI tutorial C ++ per imparare la programmazione C ++ GRATUITAMENTE
- Parametrizzazione dei dati JMeter mediante variabili definite dall'utente
- 10+ migliori strumenti di raccolta dati con strategie di raccolta dati