Geschützte C ++

Geschützte C ++

Wie viele andere Programmiersprachen bietet C ++ auch die Funktion von Datenverschlucken für Sicherheitszwecke. Wir verwenden Zugriffsmodifikatoren innerhalb eines C ++ - Programms, um unsere Daten auf verschiedenen Sicherheitsebene zu schützen. C ++ umfasst die öffentlichen, privaten und geschützten Zugriffsspezifizierer, um ihre Variablen und Funktionen zu sichern. Der geschützte Zugangsspezifizierer unterscheidet sich sowohl von privat als auch öffentlich. Dieser Artikel konzentriert sich auf den "geschützten" Zugriffsmodifikator in C ++ - Code -Beispielen. Also lasst uns anfangen. Öffnen Sie die Shell -Anwendung, erstellen Sie eine neue C ++ - Datei und öffnen Sie sie im Editor.

Beispiel 01: öffentlich vs. Privatgelände

Bevor wir uns auf den geschützten Zugriffsspezifizierer konzentrieren, müssen wir die Arbeit eines öffentlichen und privaten Zugangspezifikators lernen. Nachdem wir den C ++ - Namespace zu Beginn eines Codes verwendet haben, haben wir einen Klassentest mit einer öffentlichen Variablen „A“ und einer privaten Variablen „B“ deklariert. Wir haben ein Objekt „t“ einer Testklasse in der Main () -Methode initialisiert.

Der Wert 10 wird der Variablen „A“ zugewiesen, die öffentlich ist. Mit dem Objekt "Cout" haben wir den Wert der variablen "A" mit dem "T" -Fjekt angezeigt. Das gleiche Testklassenobjekt „T“ wurde hier verwendet, um den Wert „12“ dem privaten Datenmitglied „B“ dem Wert „12“ zuzuweisen. Mit dem Objekt "Cout" verwenden wir das Objekt "T", um den Variablen -B -Wert anzuzeigen. Zuletzt wird die Rückgabe 0 -Anweisung das Programm erfolgreich verlassen. Es ist Zeit, diesen neuen C ++ - Code zuerst zu speichern und ihn auf der Shell zu kompilieren.

Sie müssen sicherstellen, dass der C ++ - Compiler „G ++“ in Ihrem System installiert und vollständig konfiguriert ist. Wir haben also den G ++ - Compiler -Befehl in der Shell ausprobiert, der dem Namen einer Datei „geschützt ist.CC ”. Ausführung dieser Compiler -Anweisung haben wir den Fehler in Zeile 13, wenn wir den Wert der privaten Variablen „B“ unter Verwendung des Objekts „T“ zuweisen. Dies liegt daran, dass die private Variable im Klassentest nicht außerhalb dieser Klasse verwendet werden kann, ich.e., in jeder Funktion oder Klasse. Mit dem öffentlichen Zugangsmodifikator kann jede Variable und Funktion jedem zur Verfügung stehen. Im Gegensatz dazu erlaubt der private Zugriffsmodifikator den Zugang von Variablen und Funktionen für jeden, ich.e., jede Klasse.

Lassen Sie uns sehen, wie wir private Datenmitglieder verwenden können, um auf der Shell angezeigt zu werden. Wir haben die gleiche C ++ - Datei im Klassentest aktualisiert, indem wir die beiden öffentlichen Funktionen get () und set () deklariert haben. Die Implementierung beider Funktionen wurde außerhalb der „Test“ -Klasse erfolgen. Die Funktion „get ()“ wird verwendet, um den Wert des privaten Datenmitglieds „Y“ an die Funktion main () für die Anzeige zurückzugeben.

Die Funktion set () verwendet den von der main () -Funktion übergab. In der Main () -Methode haben wir das Objekt "T" des Klassentests verwendet, um der öffentlichen Variablen "x" des Klassentests Wert "10" zuzuweisen. Die Cout -Anweisung zeigt den Wert von „X“ auf der Shell an. Jetzt haben wir die Funktion "set () mit dem Objekt" T "aufgerufen, um den Wert" 14 "an private Datenmitglieder" Y "der Klasse" Test "zu übergeben". Die Cout -Anweisung hat die Funktion „GET“ bezeichnet, um den Wert der Variablen „y“ auf der Shell anzuzeigen. Mit diesem Code können wir den Wert des privaten Datenmitgliedwerts auf der Shell unter Verwendung derselben öffentlichen Datenfunktionen der Klasse anstellen. Sparen wir diesen Code und führen ihn aus:

Wir haben sowohl die Werte für "X" als auch "Y", die beim Ausführen dieses kürzlich aktualisierten Codes angezeigt werden:

Beispiel 02:

Schauen wir uns jetzt den geschützten Zugriffsmodifikator an. Wir haben die Codedatei geöffnet und sie ein wenig aktualisiert. Die erforderlichen Bibliotheken fügte zusammen mit dem C ++ - Namespace hinzu. Deklarierte eine Elternklasse und eine untergeordnete Klasse, die vom „Elternteil“ abgeleitet wurde. Die übergeordnete Klasse enthält eine geschützte Variable „x“ des Ganzzahltyps. Die Kinderklasse enthält nur zwei öffentliche Funktionen, ich.e., setzen und bekommen. Nach den Klassen haben wir beide Funktionen der untergeordneten Klasse implementiert, indem wir den Wert von „X“ festgelegt und zur main () -Funktion zurückgekehrt sind.

Die Funktion main () besteht darin, das Objekt „C“ für die untergeordnete Klasse zu erstellen. Dieses Objekt wird verwendet, um den Wert für die Variable „x“ festzulegen und über die Get () -Methode auf der Shell anzuzeigen. Die Verwendung eines Objekts zur Zuweisung von Wert an Variable „x“ zeigt einen Fehler bei der Ausführung an. Speichern Sie dann den Code und beenden Sie die Datei.

Die Ausgabe ist der gleiche wie erwartet, ich.e., Fehler.

Um diesen Fehler zu vermeiden, wenn der Wert einem geschützten Datenmitglied zugewiesen wird, sollten wir die öffentlichen Datenfunktionen verwenden, i.e., Setzen Sie und erhalten Sie Funktionen in der Kinderklasse. Mit der Funktion set () können wir den Wert der geschützten Variablen „x“ wie im folgenden Bildcode zuweisen. Danach können wir einfach die Funktion get () verwenden, um das geschützte Datenelement auf der Shell innerhalb der Cout -Objektanweisung anzuzeigen. Speichern Sie diesen Code und kompilieren Sie ihn danach:

Nach dem Kompilieren des aktualisierten Codes haben wir diesmal keine Kompilierungsfehler. Wir haben den Wert der geschützten Variablen „x“ mit der Ausführungsabfrage auf dem Shell -Bildschirm angezeigt.

Beispiel 03:

Schauen wir uns ein anderes Beispiel an, um den geschützten Zugriffsmodifikator zu verwenden. In diesem Beispiel werden wir Multi-Inheritance verwenden, um es klarer zu machen und drei Klassen A, B und C hinzuzufügen. Klasse A ist die übergeordnete Klasse von B und B ist der Elternteil von C. Sowohl A als auch B enthalten die geschützten Variablen "X" und "Y". Die Klasse B und C enthält Funktionen als öffentliche Datenmitglieder, ich.e., set () und get ().

Klasse B verwendet seine Funktionen, um den Wert für die Klasse A geschütztes Datenmitglied „X“ zu setzen und zurückzugeben, da B seine abgeleitete Klasse ist. Im Gegensatz dazu nutzt die Klasse C seine Funktionen, um den Wert „Y“ aus der Klasse B als Klasse C seine abgeleitete Klasse festzulegen und zu erhalten. In der Funktion main () treiber Code haben wir ein Objekt der Klasse B erstellt und den Wert für die "x" -Variable festgelegt. Das gleiche Objekt zeigt den Wert der Variablen „x“ auf der Shell an. Das Objekt der Klasse C wurde erstellt, um den Wert für die geschützte Variable „Y“ festzulegen und auf der Shell anzuzeigen. Führen Sie den folgenden Code aus, um die Ergebnisse anzuzeigen:

Die Ausgabe zeigt die Verwendung von set () und gern () -Funktionen ersetzt den bereits initialisierten Wert für beide geschützten Variablen.

Abschluss:

Hier ging es darum, einen geschützten Zugriffsmodifikator zu verwenden, um die Datenmitglieder für Klassen in C zu sichern++. Um es klarer zu machen, haben wir auch das Beispiel für die Verwendung öffentlicher und privater Datenmitglieder diskutiert. Außerdem haben wir die Vererbung erörtert, um die Arbeit und Verwendung sicherer Zugriffsspezifizierer in unserem Code zu demonstrieren. Die Verwendung der Funktion set () und get () ist ein Plus, um Fehler bei der Ausführung dieses Artikels zu vermeiden. Wir hoffen, Sie haben diesen Artikel hilfreich gefunden. Weitere Tipps und Tutorials finden Sie in den anderen Linux -Hinweisartikeln.