Heim >Backend-Entwicklung >C++ >Auf welche Typmitglieder können C++-Friend-Funktionen zugreifen?
In C++ können Friend-Funktionen auf alle öffentlichen, geschützten und privaten Mitglieder einer Klasse zugreifen, der Zugriff auf private Mitglieder ist jedoch eingeschränkt und kann nur durchgeführt werden, wenn eine Mitgliedsfunktion der Klasse aufgerufen wird.
Was ist eine Freundesfunktion?
Friend-Funktion ist eine spezielle Funktion in C++, die auf private und geschützte Mitglieder einer Klasse zugreifen kann. Friend-Funktionen müssen außerhalb der Klassendefinition deklariert werden.
Typmitglieder, auf die Freundfunktionen zugreifen können
Freundfunktionen können auf die folgenden Typmitglieder zugreifen:
Praktischer Fall
Betrachten Sie den folgenden Code:
class MyClass { private: int m_num; public: MyClass(int num) : m_num(num) {} friend void print_num(MyClass& obj) { std::cout << obj.m_num << std::endl; } }; int main() { MyClass obj(42); print_num(obj); // 友元函数访问私有成员 return 0; }
Ausgabeergebnis:
42
In diesem Beispiel ist print_num() eine Freundfunktion von MyClass. Es kann auf das private Mitglied m_num zugreifen, obwohl es keine Mitgliedsfunktion von MyClass ist.
Eingeschränkter Zugriff
Es ist zu beachten, dass der Zugriff auf Freundesfunktionen auf private Mitglieder beschränkt ist. Friend-Funktionen können nur dann auf private Mitglieder zugreifen, wenn eine Mitgliedsfunktion der Klasse aufgerufen wird. Mit anderen Worten: Friend-Funktionen können nicht direkt von außen auf private Mitglieder zugreifen.
Das obige ist der detaillierte Inhalt vonAuf welche Typmitglieder können C++-Friend-Funktionen zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!