Heim > Artikel > Backend-Entwicklung > Ausführliche Erklärung der C++-Friend-Funktionen: Wie verwende ich Friend-Funktionen für den klassenübergreifenden Zugriff?
Friend-Funktionen in C++ ermöglichen Nicht-Member-Funktionen den Zugriff auf private und geschützte Mitglieder einer Klasse, was bei der Implementierung klassenübergreifender Operationen, ADT und Unit-Tests sehr nützlich ist: Friend-Funktionen deklarieren: Verwenden Sie das Schlüsselwort Friend, um eine Funktion außerhalb von zu deklarieren Klasse. Verwenden Sie Friend-Funktionen: Greifen Sie direkt auf ein privates Mitglied einer Klasse zu, als wäre es eine Mitgliedsfunktion. Praktischer Fall: Verwenden Sie die Friend-Funktion, um private Altersinformationen zu erhalten, ohne das Altersattribut offenzulegen.
In der C++-Programmierung sind Friend-Funktionen ein leistungsstarker Mechanismus, der es Funktionen außerhalb einer Klasse ermöglicht, auf private und geschützte Mitglieder der Klasse zuzugreifen. Dies ist in bestimmten Situationen sehr nützlich, z. B.:
class MyClass { public: // ... private: // ... friend void print_my_class(const MyClass&); // 声明友元函数 };
Der obige Code deklariert print_my_class
als Friend-Funktion von MyClass
. Das bedeutet, dass die Funktion print_my_class
auf private und geschützte Mitglieder von MyClass
zugreifen kann. print_my_class
作为 MyClass
的友元函数。这意味着 print_my_class
函数可以访问 MyClass
的私有和受保护成员。
要使用友元函数,只需在友元函数中直接访问类的私有成员即可:
void print_my_class(const MyClass& obj) { std::cout << "Private member: " << obj.private_member << std::endl; std::cout << "Protected member: " << obj.protected_member << std::endl; }
假设我们有一个 Person
类,表示一个人,它具有一个私有的 age
成员。我们想要创建一个友元函数 get_age
来获取 Person
对象的年龄:
class Person { public: // ... private: int age; friend int get_age(const Person&); // 声明友元函数 }; int get_age(const Person& person) { return person.age; }
在 main
函数中,我们创建一个 Person
对象并使用友元函数 get_age
int main() { Person person(25); std::cout << "Age: " << get_age(person) << std::endl; return 0; }🎜Praktischer Fall🎜🎜Angenommen, wir haben eine
Person
Eine Klasse, die repräsentiert eine Person und hat ein privates age
-Mitglied. Wir möchten eine Friend-Funktion get_age
erstellen, um das Alter des Person
-Objekts zu ermitteln: 🎜Age: 25🎜In der
main
-Funktion erstellen wir eine Person-Objekt und verwenden Sie die Freundfunktion get_age
, um auf seine privaten Mitglieder zuzugreifen: 🎜rrreee🎜Ausgabe: 🎜rrreeeDas obige ist der detaillierte Inhalt vonAusführliche Erklärung der C++-Friend-Funktionen: Wie verwende ich Friend-Funktionen für den klassenübergreifenden Zugriff?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!