data abstraction c
Alles, was Sie über Abstraktion in C ++ wissen müssen.
In dieser C ++ - Reihe von Tutorials lernen wir alle wichtigen Konzepte der objektorientierten Programmierung in C ++ kennen, die als die vier Säulen von OOP bekannt sind.
- Abstraktion
- Verkapselung
- Erbe
- Polymorphismus
In diesem Tutorial werden wir uns mit der Datenabstraktion in C ++ befassen.
=> Klicken Sie hier für die Absolute C ++ - Schulungsserie.
Was du lernen wirst:
- Was ist Abstraktion?
- Implementierung der Abstraktion in C ++
- Vorteile der Abstraktion
- Fazit
- Literatur-Empfehlungen
Was ist Abstraktion?
Abstraktion ist eine Technik der objektorientierten Programmierung, bei der wir die Details der Implementierung vor dem Benutzer verbergen und nur eine erforderliche Schnittstelle verfügbar machen.
Wir können ein reales Beispiel einer Klimaanlage (AC) nehmen. Wir haben eine Fernbedienung, um die verschiedenen Wechselstromfunktionen wie Starten, Stoppen, Erhöhen / Verringern der Temperatur, Steuern der Luftfeuchtigkeit usw. zu steuern. Wir können diese Funktionen nur mit einem Knopfdruck steuern, aber intern gibt es eine komplexe Logik implementiert, um diese Funktionen auszuführen.
Als Endbenutzer sind wir jedoch nur der Remote-Schnittstelle und nicht den Implementierungsdetails all dieser Funktionen ausgesetzt.
Die Abstraktion ist eine der vier Säulen der objektorientierten Programmierung, und fast alle OOP-Lösungen basieren auf den Abstraktionsprinzipien, d. H. Der Trennung von Schnittstellen- und Implementierungsdetails im Programm.
Im obigen Diagramm haben wir ein Objekt und seinen Inhalt als bildliche Darstellung gezeigt. Wir können sehen, dass die innerste Schicht dieses Objekts seine Kernfunktionalität ist, gefolgt von den Implementierungsdetails.
In OOP sind diese beiden Schichten (obwohl dies in den meisten Fällen nur eine Schicht ist) nicht der Außenwelt ausgesetzt. Die äußerste Schicht, die Schnittstelle, ist die Schicht, die dem Endbenutzer bereitgestellt wird, um auf die Funktionalität des Objekts zuzugreifen.
Infolgedessen sind Änderungen, die an den innersten Ebenen des Objekts vorgenommen wurden, für einen Endbenutzer nicht ersichtlich, solange die Schnittstelle, der der Benutzer ausgesetzt ist, dieselbe bleibt.
Implementierung der Abstraktion in C ++
C ++ unterstützt die Abstraktion in großer Tiefe. In C ++ können sogar die von uns verwendeten Bibliotheksfunktionen als Beispiel für Abstraktion betrachtet werden.
Wir können die Implementierung der Abstraktion in C ++ wie folgt darstellen:
Wie in der obigen Abbildung gezeigt, können wir die Abstraktion in C ++ auf zwei Arten implementieren:
# 1) Verwenden von Klassen und Zugriffsspezifizierern
Eine in C ++ implementierte Klasse mit öffentlichen, privaten und geschützten Zugriffsspezifizierern kann als Implementierung der Abstraktion betrachtet werden.
Wie wir bereits wissen, können wir durch die Verwendung von Zugriffsspezifizierern den Zugriff für die Klassenmitglieder steuern. Wir können einige Mitglieder privat machen, damit sie außerhalb der Klasse nicht zugänglich sind. Wir können einige Mitglieder als geschützt haben, so dass sie nur für die abgeleiteten Klassen zugänglich sind. Zuletzt können wir einige Mitglieder öffentlich machen, damit diese Mitglieder außerhalb der Klasse zugänglich sind.
Mit diesem Begriff können wir die Abstraktion so implementieren, dass die Implementierungsdetails mithilfe des privaten Zugriffsspezifizierers vor der Außenwelt verborgen sind, während die Schnittstelle mithilfe des öffentlichen Spezifizierers der Außenwelt zugänglich gemacht werden kann.
Daher können wir die Abstraktion in C ++ implementieren, indem wir eine Klasse verwenden, um Daten und Funktionen in einer einzigen Einheit zu bündeln, und Zugriffsspezifizierer verwenden, um den Zugriff auf diese Daten und Funktionen zu steuern.
Lassen Sie uns das folgende Beispiel implementieren, um dies zu demonstrieren.
Fragen und Antworten zu CSS3-Interviews pdf
#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 = '< Ausgabe:
Geben Sie num1: 10 ein
Geben Sie num2: 20 ein
Summe der beiden Zahlen = 30
Im obigen Programm haben wir eine Beispielklasse mit zwei ganzzahligen Variablen, num1 und num2. Es hat auch zwei Funktionen readNum und displaySum. Die Datenelemente num1 und num2 sowie die Funktion readNum sind für die Klasse privat.
Die Funktion displaySum ist für die Klasse öffentlich. In der Hauptfunktion erstellen wir ein Objekt der Klasse sample und rufen displaySum auf, das die beiden Zahlen liest und deren Summe druckt.
Dies ist die Abstraktionsimplementierung. Wir stellen nur eine Funktion der Öffentlichkeit zur Verfügung, während die anderen Datenelemente und Funktionen unter Verschluss gehalten werden. Obwohl dies nur ein Beispiel ist, um die Abstraktion zu demonstrieren und gleichzeitig reale Probleme zu implementieren, können wir in C ++ viele Abstraktionsebenen haben.
# 2) Verwenden der Header-Datei-Implementierung
Wir verwenden Header-Dateien im C ++ - Programm, um vordefinierte Funktionen zu importieren und zu verwenden. Dazu verwenden wir die Direktive #include, um Header-Dateien in unser Programm aufzunehmen.
Zum Beispiel, Im obigen Programm haben wir die Funktionen cin und cout verwendet. In Bezug auf diese Funktionen wissen wir nur, wie sie verwendet werden und welche Parameter sie verwenden.
Wir wissen nicht, was im Hintergrund passiert, wenn diese Funktionen aufgerufen werden oder wie sie in der iostream-Header-Datei implementiert sind. Dies ist eine weitere Art der Abstraktion, die von C ++ bereitgestellt wird.
Wir kennen nicht die Details der Implementierung aller Funktionen, die wir aus den Header-Dateien importieren.
Hier ist ein weiteres Beispiel zur Demonstration der Abstraktion.
#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 = '< Ausgabe:
EmpId = 1 Name = Ved
Mitarbeitergehalt = 18245.4
In diesem Beispiel haben wir einen Klassenmitarbeiter definiert, der private Details wie empId, Name, Gehaltsdetails wie Basic und Zulagen enthält. Wir definieren auch eine private Funktion 'berechne Gehalt', die das Gehalt unter Verwendung von Grund- und Zulagen berechnet.
Wir haben einen Konstruktor, der alle Daten für ein bestimmtes Mitarbeiterobjekt initialisiert. Wir rufen auch die Funktion 'berechne Gehalt' vom Konstruktor auf, um das Gehalt des aktuellen Mitarbeiters zu berechnen.
Als nächstes haben wir eine 'Anzeige' -Funktion, die empId, Namen und Gehalt anzeigt. In der Hauptfunktion erstellen wir ein Objekt des Klassenmitarbeiters und rufen die Anzeigefunktion auf.
Tool zur Konvertierung von YouTube in MP3-Videos
Wir können deutlich sehen, welchen Abstraktionsgrad wir in diesem Programm bereitgestellt haben. Wir haben alle Mitarbeiterdetails sowie die Funktion zum Berechnen des Gehalts vor dem Benutzer verborgen, indem wir sie privat gemacht haben.
Wir haben dem Benutzer nur eine Funktionsanzeige zur Verfügung gestellt, die dem Benutzer alle Informationen über das Mitarbeiterobjekt zur Verfügung stellt. Gleichzeitig werden Details wie private Daten und die Berechnung des Gehalts des Mitarbeiters ausgeblendet.
Auf diese Weise müssen wir in Zukunft die Anzeigefunktion nicht mehr ändern, wenn wir weitere Details hinzufügen und die Art und Weise ändern möchten, wie das Gehalt berechnet wird. Dem Benutzer sind diese Änderungen nicht bekannt.
Vorteile der Abstraktion
Nachfolgend sind einige der Vorteile der Abstraktion aufgeführt.
- Der Programmierer muss keinen Low-Level-Code schreiben.
- Abstraktion schützt die interne Implementierung vor böswilliger Verwendung und Fehlern.
- Durch Abstraktion kann eine Codeduplizierung verhindert werden, und daher muss der Programmierer dieselben Aufgaben immer wieder ausführen.
- Die Abstraktion fördert die Wiederverwendung von Code und klassifiziert die Klassendatenelemente ordnungsgemäß.
- Der Programmierer kann die internen Details der Klassenimplementierung ohne Wissen des Endbenutzers ändern, ohne die Operationen der äußeren Schicht zu beeinflussen.
Fazit
Abstraktion ist eines der wichtigsten Konzepte in OOP und wird in C ++ in großer Tiefe implementiert. Mithilfe der Abstraktion können wir die Implementierungsdetails des Programms geheim halten und nur die gewünschten Details der Außenwelt zugänglich machen.
Mithilfe des Abstraktionskonzepts können wir abstrakte Datentypen und Klassen entwerfen, die als Grundgerüst für die Programmierlösung dienen, auf der eine gesamte Lösung aufgebaut ist. Während wir die OOP-Themen durcharbeiten, werden wir mehr über diese Typen und Klassen erfahren.
In unseren kommenden Tutorials lernen wir eine weitere Säule von OOP kennen, nämlich die Kapselung. Wir werden dort auch Abstraktion und Kapselung zusammen abwägen.
=> Suchen Sie hier nach der gesamten C ++ - Schulungsserie.
Literatur-Empfehlungen
- C ++ - Datentypen
- Kapselung in C ++
- Top 10 Data Science Tools im Jahr 2021 zur Beseitigung der Programmierung
- Objektorientierte Programmierung in C ++
- Einführung in Datenstrukturen in C ++
- Über 70 BEST C ++ - Tutorials zum kostenlosen Erlernen der C ++ - Programmierung
- JMeter-Datenparametrierung mit benutzerdefinierten Variablen
- 10+ beste Datenerfassungstools mit Datenerfassungsstrategien