Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der C++-Friend-Funktionen: Wie schränke ich die Zugriffsrechte von Friend-Funktionen ein?
Friend-Funktionen in C++ können Zugriffsrechte durch Zugriffsspezifizierer oder Namespaces einschränken, um nur bestimmten Funktionen oder Funktionen innerhalb eines bestimmten Namespace den Zugriff auf private Mitglieder einer Klasse zu ermöglichen.
C++ Detaillierte Erklärung der Freundfunktionen: Wie kann ich die Zugriffsrechte von Freundfunktionen einschränken?
In C++ ist eine Friend-Funktion eine spezielle Funktion, die externen Funktionen den Zugriff auf private Mitglieder einer Klasse ermöglicht. Es ermöglicht uns den Zugriff auf private Daten oder Funktionen einer Klasse außerhalb einer anderen Klasse und bietet so in bestimmten Situationen eine größere Flexibilität.
Beschränken Sie die Zugriffsrechte von Freundesfunktionen
Wir können die Zugriffsrechte von Freundesfunktionen auf private Mitglieder beschränken, indem wir Freundschaftserklärungen einschränken. Dafür gibt es zwei Möglichkeiten:
Methode 1: Zugriffsspezifizierer verwenden
Wir können den Zugriff von Friend-Funktionen mithilfe von Zugriffsspezifizierern (öffentlich, geschützt oder privat) einschränken. Die Syntax lautet wie folgt:
class MyClass { private: // 私有成员只能被友元函数访问 friend void friendFunction(); };
Methode 2: Namespaces verwenden
Sie können Namespaces auch verwenden, um die Sichtbarkeit von Friend-Funktionen einzuschränken. Die Syntax lautet wie folgt:
namespace MyNamespace { class MyClass { private: // 私有成员由 MyNameSpace 命名空间内部所有友元函数访问 friend class MyFriendClass; }; }
Praktischer Fall
Angenommen, wir haben die folgenden zwei Klassen:
class Person { private: string name; int age; }; class FriendClass { public: // 可以访问私有成员,因为它是一个友元类 void printPersonDetails(Person person) { cout << person.name << ", " << person.age << endl; } };
Hier FriendClass
是 Person
类的友元类,因此它可以访问 name
和 age
und andere private Mitglieder.
Führen Sie das Beispiel aus
int main() { Person person{"John Doe", 30}; FriendClass friendObj; friendObj.printPersonDetails(person); return 0; }
Ausgabe:
John Doe, 30
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der C++-Friend-Funktionen: Wie schränke ich die Zugriffsrechte von Friend-Funktionen ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!