Datenkapselung in C++
Alle C++-Programme bestehen aus den folgenden zwei grundlegenden Elementen −
-
Programmanweisungen (Code) − Dies ist der Teil eines Programms, der Aktionen ausführt und sie werden Funktionen genannt.
-
Programmdaten − Die Daten sind die Informationen des Programms, die von den Programmfunktionen beeinflusst werden.
Kapselung ist ein objektorientiertes Programmierkonzept, das die Daten und Funktionen, die die Daten manipulieren, zusammenbindet und beides vor Eingriffen und Missbrauch von außen schützt. Die Datenkapselung führte zu dem wichtigen OOP-Konzept des Datenverbergens .
Datenkapselung ist ein Mechanismus zum Bündeln der Daten und der Funktionen, die sie verwenden, und Datenabstraktion ist ein Mechanismus, bei dem nur die Schnittstellen angezeigt und die Implementierungsdetails vor dem Benutzer verborgen werden.
C++ unterstützt die Eigenschaften der Kapselung und des Verbergens von Daten durch die Erstellung benutzerdefinierter Typen, die als Klassen bezeichnet werden . Wir haben bereits untersucht, dass eine Klasse private, protected enthalten kann und öffentlich Mitglieder. Standardmäßig sind alle in einer Klasse definierten Elemente privat. Zum Beispiel −
class Box { public: double getVolume(void) { return length * breadth * height; } private: double length; // Length of a box double breadth; // Breadth of a box double height; // Height of a box };
Die Variablen Länge, Breite und Höhe sind privat . Das bedeutet, dass nur andere Mitglieder der Box-Klasse auf sie zugreifen können und kein anderer Teil Ihres Programms. Dies ist eine Möglichkeit, Kapselung zu erreichen.
Um Teile einer Klasse öffentlich zu machen (d.h. zugänglich für andere Teile Ihres Programms), müssen Sie sie nach dem öffentlichen deklarieren Stichwort. Alle nach dem öffentlichen Bezeichner definierten Variablen oder Funktionen sind für alle anderen Funktionen in Ihrem Programm zugänglich.
Wenn Sie eine Klasse zum Freund einer anderen Klasse machen, werden die Implementierungsdetails offengelegt und die Kapselung reduziert. Das Ideal ist, so viele Details jeder Klasse wie möglich vor allen anderen Klassen zu verbergen.
Beispiel für Datenkapselung
Jedes C++-Programm, in dem Sie eine Klasse mit öffentlichen und privaten Membern implementieren, ist ein Beispiel für Datenkapselung und Datenabstraktion. Betrachten Sie das folgende Beispiel −
Live-Demo#include <iostream> using namespace std; class Adder { public: // constructor Adder(int i = 0) { total = i; } // interface to outside world void addNum(int number) { total += number; } // interface to outside world int getTotal() { return total; }; private: // hidden data from outside world int total; }; int main() { Adder a; a.addNum(10); a.addNum(20); a.addNum(30); cout << "Total " << a.getTotal() <<endl; return 0; }
Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis −
Total 60
Obige Klasse addiert Zahlen und gibt die Summe zurück. Die öffentlichen Mitglieder addNum und getTotal sind die Schnittstellen zur Außenwelt und ein Benutzer muss sie kennen, um die Klasse zu verwenden. Das private Mitglied gesamt ist etwas, das vor der Außenwelt verborgen ist, aber für den ordnungsgemäßen Betrieb der Klasse benötigt wird.
Strategie entwerfen
Die meisten von uns haben gelernt, Klassenmitglieder standardmäßig privat zu machen, es sei denn, wir müssen sie wirklich offenlegen. Das ist einfach eine gute Kapselung .
Dies wird am häufigsten auf Datenmember angewendet, gilt aber gleichermaßen für alle Member, einschließlich virtueller Funktionen.
C Sprache