Heim >Backend-Entwicklung >C++ >Ausführliche Erklärung der C++-Friend-Funktionen: Was ist der Unterschied zwischen Friend-Funktionen und globalen Funktionen?
Friend-Funktionen können auf private und geschützte Datenmitglieder der Klasse zugreifen, globale Funktionen können jedoch nicht in der Klassendeklaration deklariert werden, und globale Funktionen werden außerhalb der Klasse deklariert. Verwenden Sie das Schlüsselwort Friend, um Friend-Funktionen zu deklarieren Schlüsselwort zum Deklarieren globaler Funktionen. Friend-Funktionen erhalten die Berechtigung zum Zugriff auf Klassenmitgliedsvariablen durch Deklaration. Durch die Deklaration einer Friend-Funktion getPrivateData können Sie beispielsweise auf die private Variable x der MyClass-Klasse zugreifen.
C++ Detaillierte Erklärung der Friend-Funktionen
Der Unterschied zwischen Friend-Funktionen und globalen Funktionen
In C++ ist eine Friend-Funktion eine spezielle Funktion, die auf private Funktionen zugreifen kann, die in einer Klassenmitgliedsfunktion deklariert und geschützt sind Datenelemente. Im Gegensatz dazu werden globale Funktionen außerhalb der Klasse deklariert und haben keinen Zugriff auf private und geschützte Datenelemente.
Syntax der Friend-Funktion
Die Syntax der Friend-Funktion lautet wie folgt:
friend 返回类型 函数名(参数列表);
Deklarieren Sie beispielsweise eine Friend-Funktion, die auf private Datenelemente in MyClass
zugreifen kann: MyClass
中私有数据成员的友元函数:
friend int getPrivateData(MyClass& object);
友元函数和全局函数的区别
友元函数和全局函数的主要区别如下:
friend
关键字声明,而全局函数使用 extern
关键字声明。实战案例
考虑一个包含私有成员变量 x
的 MyClass
类:
class MyClass { private: int x; public: int getX(); void setX(int value); };
要访问 MyClass
的私有数据成员 x
,我们可以声明一个友元函数:
friend int getPrivateData(MyClass& object) { return object.x; }
使用友元函数
我们可以使用友元函数来访问 MyClass
int main() { MyClass object; object.setX(10); int privateData = getPrivateData(object); cout << "Private data: " << privateData << endl; return 0; }
Friend Der Unterschied zwischen Funktionen und globalen Funktionen
🎜🎜Die Hauptunterschiede zwischen Friend-Funktionen und globalen Funktionen sind wie folgt: 🎜friend
deklariert, während globale Funktionen mit dem Schlüsselwort extern
deklariert werden. MyClass
-Klasse vor, die eine private Mitgliedsvariable x
enthält: 🎜Private data: 10🎜Um auf
MyClasss privates Datenmitglied <code>x
können wir eine Friend-Funktion deklarieren: 🎜rrreee🎜🎜Mit Friend-Funktionen🎜🎜🎜Wir können Friend-Funktionen verwenden, um auf MyClass
zuzugreifen. s privates Datenelement: 🎜rrreee🎜Beim Ausführen dieses Codes wird Folgendes ausgegeben: 🎜rrreeeDas obige ist der detaillierte Inhalt vonAusführliche Erklärung der C++-Friend-Funktionen: Was ist der Unterschied zwischen Friend-Funktionen und globalen Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!