C++-Programme greifen auf private Mitglieder der Klasse zu
Auf private Mitglieder einer Klasse können nur Mitglieder der Klasse zugreifen. Dies geschieht, um objektorientierte Kapselungsprinzipien beizubehalten und sicherzustellen, dass Daten und die damit verbundenen Funktionen in einer Einheit gespeichert werden und nur von Mitgliedern der Klasse darauf zugegriffen werden kann. C++ verfügt über drei verschiedene Zugriffskontrollen, um die Sichtbarkeit von Mitgliedern einer Klasse festzulegen. Diese drei Zugriffskontrollzeichen sind −
Öffentlich − Wenn die Mitglieder einer Klasse öffentlich sichtbar sind, kann von jeder anderen Klasse aus auf diese Mitglieder zugegriffen werden.
Privat − Auf Klassenmitglieder mit privater Sichtbarkeit kann nur innerhalb der Klasse zugegriffen werden.
Geschützte − geschützte Klassenmitglieder können nur innerhalb der Klasse oder ihrer Unterklassen aufgerufen werden.
In diesem Artikel konzentrieren wir uns nur auf den Zugriff auf private Mitglieder einer Klasse.
Verwenden Sie Getter- und Setter-Methoden, um auf Datenelemente zuzugreifen
Getter- und Setter-Funktionen werden verwendet, um auf private Mitglieder einer Klasse zuzugreifen und diese zu ändern. Wie der Name schon sagt, gibt die Getter-Funktion das Datenelement zurück, während die Setter-Funktion zum „Setzen“ oder Ändern des Datenelements verwendet wird. Wir verwenden zwei Beispiele, um dieses Konzept besser zu verstehen, aber zuvor wird unten die grundlegende Syntax angegeben. Grammatik
Getter-/Accessor-Funktionen −
private: <datatype> value; public: <datatype> getterFunction() { return <datatype> this->value; }
Setter/Mutator-Funktion−
private: <datatype> value; public: void setterFunction(<datatype> _value) { this->value = _value; }
Beispiel
lautet:Beispiel
#include <iostream> using namespace std; class Test{ private: int value; public: //the getter function int getValue() { return this->value; } //the setter function void setValue(int _value) { this->value = _value; } }; int main(){ Test test; test.setValue(15); cout << "The value we set is: " << test.getValue() << endl; return 0; }
Ausgabe
The value we set is: 15
Zugriff auf die Memberfunktion aus einer anderen Funktion heraus
Die gleiche Situation ist, wenn wir auf eine private Mitgliedsfunktion zugreifen. Wir müssen innerhalb der Klassenmember-Methode auf die gleiche Weise darauf zugreifen, wie wir auf die Datenmember zugreifen. Wir können den Zeiger „
this“ verwenden, um Namenskonflikte zu vermeiden. Grammatik
private: <returntype> function_name(params) {}; public: <returntype> another_function(params) { <datatype> var = this->function_name(arguments); }
Funktionen, die private Mitgliedsfunktionen aufrufen, sollten als öffentlich deklariert werden. Die öffentliche Funktion wird nur ausgeführt, wenn sie von einem Objekt dieser Klasse aufgerufen wird.
Die chinesische Übersetzung vonBeispiel
lautet:Beispiel
#include <iostream> using namespace std; class Test{ private: int value; //multiplies the member value by 10 void multiplyValue() { this->value = this->value * 10; } public: //the getvalue function calls the multiply value function int multiplyAndGetValue() { this->multiplyValue(); return this->value; } //the setter function void setValue(int _value) { this->value = _value; } }; int main(){ Test test; test.setValue(15); cout << "The value after setting and multiplying is: " << test.multiplyAndGetValue() << endl; return 0; }
Ausgabe
The value after setting and multiplying is: 150
Verwenden Sie Freundesklassen
In C++ ist eine Freundklasse eine Klasse, die auf private und geschützte Mitglieder anderer Klassen zugreifen kann, die für andere Klassen nicht sichtbar sind. Um eine Klasse als Freund einer anderen Klasse zu deklarieren, verwenden Sie das Schlüsselwort „
friend“. Mal sehen, wie es funktioniert. Grammatik
class A{ private: ..... friend class B; }; class B{ //class body };
Beispiel
lautet:Beispiel
#include <iostream> using namespace std; class Test1{ private: int value; public: Test1(int _value) { this->value = _value; } //we declare another class as a friend friend class Test2; }; class Test2{ public: //displays the value of the other class object void display(Test1 &t) { cout << "The value of Test1 object is: " << t.value; } }; int main(){ //creating two class objects of the two classes Test1 test1(15); Test2 test2; //calling the friend class function test2.display(test1); return 0; }
Ausgabe
The value of Test1 object is: 15
Freundefunktionen nutzen
In C++ ähneln Friend-Funktionen Friend-Klassen. Hier können wir eine bestimmte Funktion, die kein Mitglied der Klasse ist, als „Freund“ deklarieren und sie erhält Zugriff auf die privaten Mitglieder der Klasse. Schauen wir uns die Syntax an, wie man eine Funktion als „
Freund“ definiert. Grammatik
class A{ private: ..... friend <return_type> function_name(params); }; <return_type> function_name(params) { //function body }
Beispiel
lautet:Beispiel
#include <iostream> using namespace std; class Test1{ private: int value; public: Test1(int _value) { this->value = _value; } //we declare a friend function friend void display(Test1); }; void display(Test1 t) { cout << "The value of Test1 object is: " << t.value; } int main(){ //creating two class objects of the two classes Test1 test1(55); //calling the friend class function display(test1); return 0; }
Ausgabe
The value of Test1 object is: 55
Fazit
Wenn wir auf private Datenmitglieder einer Klasse zugreifen, ist es besser, Zugriffs-/Getter- und Modifikator-/Setter-Funktionen zu verwenden. Dies ist die sicherste Möglichkeit, auf Datenelemente einer Klasse zuzugreifen. Denken Sie immer daran, dass Funktionen, die auf private Mitglieder zugreifen, als öffentlich deklariert werden sollten. Friend-Funktionen sind in anderen objektorientierten Sprachen nicht verfügbar, da dadurch die Eigenschaften der objektorientierten Kapselung nicht immer erhalten bleiben. Die Freundschaftsbeziehung ist asymmetrisch. Wenn Klasse A Klasse B als Freund deklariert, hat Klasse B Zugriff auf alle Mitglieder von A, A kann jedoch nicht auf alle privaten Mitglieder von B zugreifen.
Das obige ist der detaillierte Inhalt vonC++-Programme greifen auf private Mitglieder der Klasse zu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Eine Konstante wird auch als Variable bezeichnet. Sobald sie definiert ist, ändert sich ihr Wert während der Ausführung des Programms nicht. Daher können wir eine Variable als Konstante deklarieren, die auf einen festen Wert verweist. Es wird auch Text genannt. Konstanten müssen mit dem Schlüsselwort Const definiert werden. Syntax Die Syntax der in der Programmiersprache C verwendeten Konstanten ist wie folgt: consttypeVariableName; (oder) Verschiedene Arten von Konstanten Die verschiedenen Arten von Konstanten, die in der Programmiersprache C verwendet werden, sind wie folgt: Ganzzahlige Konstanten – Beispiel: 1,0 ,34, 4567 Gleitkommakonstanten – Beispiel: 0,0, 156,89, 23,456 Oktal- und Hexadezimalkonstanten – Beispiel: Hex: 0x2a, 0xaa.. Oktal

In iOS17 hat Apple mehr Kontrolle darüber, was Apps auf Fotos sehen können. Lesen Sie weiter, um zu erfahren, wie Sie den App-Zugriff pro App verwalten. In iOS können Sie mit der In-App-Fotoauswahl von Apple bestimmte Fotos mit der App teilen, während der Rest Ihrer Fotobibliothek privat bleibt. Apps müssen Zugriff auf Ihre gesamte Fotobibliothek anfordern, und Sie können Apps optional den folgenden Zugriff gewähren: Eingeschränkter Zugriff – Apps können nur Bilder sehen, die Sie auswählen können. Dies können Sie jederzeit in der App oder über Einstellungen > Klicken Sie auf „Datenschutz und Sicherheit“ > „Fotos“, um ausgewählte Bilder anzuzeigen. Voller Zugriff – App kann Fotos anzeigen

VS Code und Visual Studio C++ IntelliSense können Bibliotheken möglicherweise nicht abrufen, insbesondere bei der Arbeit an großen Projekten. Wenn wir mit der Maus über #Include<wx/wx.h> fahren, wird die Fehlermeldung „Quelldatei 'string.h' kann nicht geöffnet werden“ angezeigt (abhängig von „wx/wx.h“) und manchmal reagiert die Funktion zur automatischen Vervollständigung nicht. In diesem Artikel erfahren Sie, was Sie tun können, wenn VSCode und VSC++ IntelliSense nicht funktionieren oder Bibliotheken nicht extrahieren. Warum funktioniert mein Intellisense nicht in C++? Bei der Arbeit mit großen Dateien kommt es manchmal zu IntelliSense

Ein JsonNode ist Jacksons JSON-Baummodell, das JSON in JsonNode-Instanzen einlesen und JsonNode in JSON schreiben kann. Wir können Jackson verwenden, um JSON in einen JsonNode einzulesen, indem wir eine ObjectMapper-Instanz erstellen und die Methode readValue() aufrufen. Mit der Methode get() der Klasse JsonNode können wir auf Felder, Arrays oder verschachtelte Objekte zugreifen. Wir können die Methode asText() verwenden, um eine gültige Zeichenfolgendarstellung zurückzugeben und den Wert des Knotens mithilfe der Methode asInt() der Klasse JsonNode in Javaint umzuwandeln. Im folgenden Beispiel können wir auf Json zugreifen

Können Sie aufgrund des Fehlercodes 8C230002 keine Inhalte auf Ihrer Xbox kaufen oder ansehen? Einige Benutzer erhalten diese Fehlermeldung immer wieder, wenn sie versuchen, Inhalte auf ihrer Konsole zu kaufen oder anzusehen. Leider liegt ein Problem mit dem Xbox-Dienst vor. Versuchen Sie es später erneut. Wenn Sie Hilfe zu diesem Problem benötigen, besuchen Sie www.xbox.com/errorhelp. Statuscode: 8C230002 Dieser Fehlercode wird normalerweise durch vorübergehende Server- oder Netzwerkprobleme verursacht. Es kann jedoch auch andere Gründe geben, beispielsweise die Datenschutzeinstellungen oder die Kindersicherung Ihres Kontos, die Sie möglicherweise daran hindern, bestimmte Inhalte zu kaufen oder anzusehen. Beheben Sie den Xbox-Fehlercode 8C230002, wenn Sie beim Versuch, Inhalte auf Ihrer Xbox-Konsole anzusehen oder zu kaufen, den Fehlercode 8C erhalten

Als Eingabe nehmen wir das Integer-Array Arr[]. Ziel ist es, mithilfe einer rekursiven Methode die größten und kleinsten Elemente in einem Array zu finden. Da wir Rekursion verwenden, durchlaufen wir das gesamte Array, bis wir Länge = 1 erreichen, und geben dann A[0] zurück, was den Basisfall bildet. Andernfalls wird das aktuelle Element mit dem aktuellen Minimal- oder Maximalwert verglichen und sein Wert für nachfolgende Elemente rekursiv aktualisiert. Schauen wir uns verschiedene Eingabe- und Ausgabeszenarien dafür an −Input −Arr={12,67,99,76,32};Output −Maximum value in the array: 99 Explanation &mi

Mit Mutagen und dem eyeD3-Modul in Python können wir auf die Metadaten von Audiodateien zugreifen. Für Videometadaten können wir Filme und die OpenCV-Bibliothek in Python verwenden. Metadaten sind Daten, die Informationen über andere Daten bereitstellen, beispielsweise Audio- und Videodaten. Zu den Metadaten für Audio- und Videodateien gehören Dateiformat, Dateiauflösung, Dateigröße, Dauer, Bitrate usw. Durch den Zugriff auf diese Metadaten können wir Medien effizienter verwalten und die Metadaten analysieren, um nützliche Informationen zu erhalten. In diesem Artikel werfen wir einen Blick auf einige der von Python bereitgestellten Bibliotheken oder Module für den Zugriff auf Metadaten von Audio- und Videodateien. Auf Audio-Metadaten zugreifen Einige Bibliotheken für den Zugriff auf Audiodatei-Metadaten nutzen Mutagenese

Um das Problem zu lösen, dass Tomcat nach der Bereitstellung nicht erfolgreich auf das Kriegspaket zugreifen kann, sind bestimmte Codebeispiele erforderlich. Als weit verbreiteter Java-Webserver ermöglicht Tomcat Entwicklern, ihre eigenen entwickelten Webanwendungen zur Bereitstellung in Kriegsdateien zu packen. Manchmal kann es jedoch vorkommen, dass wir nach der Bereitstellung des Kriegspakets nicht erfolgreich darauf zugreifen können. Dies kann an einer falschen Konfiguration oder aus anderen Gründen liegen. In diesem Artikel stellen wir einige konkrete Codebeispiele bereit, die dieses Dilemma angehen. 1. Überprüfen Sie den Tomcat-Dienst
