Heim > Artikel > Backend-Entwicklung > Ausführliche Erklärung der C++-Friend-Funktionen: Welche Rolle spielen Friend-Funktionen bei der Mehrfachvererbung?
Friend-Funktionen ermöglichen Nicht-Mitgliedsfunktionen den Zugriff auf private Mitglieder und spielen eine Rolle bei der Mehrfachvererbung, sodass abgeleitete Klassenfunktionen auf private Mitglieder der Basisklasse zugreifen können.
C++ Detaillierte Erklärung der Freundfunktionen: Die Rolle der Freundfunktionen bei der Mehrfachvererbung
Einführung in die Freundfunktionen
Eine Freundfunktion ist eine spezielle Funktion, die die Berechtigung erhält, auf private Mitglieder zuzugreifen, und Nr Objekt dieser Klasse ist erforderlich. Es wird häufig verwendet, um Nicht-Mitgliedsfunktionen den Zugriff auf private Daten zu ermöglichen.
Syntax:
class ClassName { ... // 类成员 friend FunctionName; };
Die Rolle des Freundes funktioniert bei der Mehrfachvererbung
Bei der Mehrfachvererbung kann eine abgeleitete Klasse Datenelemente und Methoden von mehreren Basisklassen erben. Wenn eine Funktion in einer abgeleiteten Klasse auf ein privates Mitglied der Basisklasse zugreifen muss, kann die Funktion als Friend-Funktion deklariert werden.
Praktischer Fall
Angenommen, wir haben eine Base
-Klasse und eine abgeleitete Klasse Derived
, die von Base
erbt: Base
类和一个从 Base
继承的派生类 Derived
:
class Base { private: int data; }; class Derived : public Base { public: void printData() { std::cout << data << std::endl; } friend void printData2(Derived& obj); };
由于 data
是 Base
的私有成员,Derived
中的 printData()
函数无法直接访问它。因此,我们将 printData2()
函数声明为 Derived
的友元函数:
void printData2(Derived& obj) { std::cout << obj.data << std::endl; }
现在,printData2()
可以访问 Derived
中私有的 data
int main() { Derived obj; obj.printData(); printData2(obj); }Aufgrund von data ist ein privates Mitglied von
Base
und kann nicht direkt von der Funktion printData()
in Derived
aufgerufen werden. Daher deklarieren wir die Funktion printData2()
als befreundete Funktion von Derived
: 0 0Jetzt kann
printData2()
auf zugreifen Privates <code>data
-Mitglied in Derived.
Verwendung:
🎜rrreee🎜Ausgabe: 🎜rrreeeDas obige ist der detaillierte Inhalt vonAusführliche Erklärung der C++-Friend-Funktionen: Welche Rolle spielen Friend-Funktionen bei der Mehrfachvererbung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!