Heim >Backend-Entwicklung >C++ >Welchen Umfang haben die Berechtigungen von C++-Friend-Funktionen?

Welchen Umfang haben die Berechtigungen von C++-Friend-Funktionen?

PHPz
PHPzOriginal
2024-04-15 14:42:02860Durchsuche

Friend-Funktionen sind Nicht-Member-Funktionen, die über die Berechtigung verfügen, auf private Mitglieder einer Klasse zuzugreifen. Der Umfang der Berechtigungen ist auf die Klasse beschränkt, zu der sie gehören. Wie im Beispiel wird die Funktion „addMoney“ als Freund der Klasse „BankAccount“ deklariert und kann auf den Kontostand des privaten Mitglieds zugreifen und diesen bearbeiten.

C++ 友元函数的权限范围有多大?

Berechtigungsbereich der C++-Friend-Funktion

Was ist eine Friend-Funktion?

Eine Freundesfunktion ist eine spezielle Funktion für Nichtmitglieder, die auf Klassenmitglieder (privat oder geschützt) zugreifen kann, auf die normalerweise nur Klassenmitglieder zugreifen können. Ähnlich wie Mitgliedsfunktionen haben Friend-Funktionen die Möglichkeit, auf die interne Darstellung einer Klasse zuzugreifen.

Berechtigungsbereich

Der Umfang der Berechtigungen einer Friend-Funktion ist auf die Klasse beschränkt, in der sie als Friend-Funktion deklariert ist. Friend-Funktionen können nicht auf private oder geschützte Mitglieder anderer Klassen zugreifen.

Friend-Funktionen deklarieren

Um eine Funktion als Friend-Funktion zu deklarieren, können Sie das Schlüsselwort friend verwenden, wie unten gezeigt: friend 关键字,如下所示:

class MyClass {
private:
    int privateMember;

public:
    // 声明一个友元函数
    friend void myFriendFunction(MyClass& obj);
};

实战案例

考虑一个使用友元函数来更改私有成员的类:

class BankAccount {
private:
    int balance;

public:
    // 友元函数可以访问私有成员
    friend void addMoney(BankAccount& account, int amount);
};

// 友元函数的定义
void addMoney(BankAccount& account, int amount) {
    account.balance += amount;
}

在这个示例中,addMoney 函数被声明为 BankAccount 类的友元函数,因此它可以访问该类的私有成员 balancerrreee

🎜Praktischer Fall🎜🎜🎜Betrachten Sie eine Verwendung of friends-Funktion zum Ändern der privaten Mitglieder der Klasse: 🎜rrreee🎜In diesem Beispiel wird die Funktion addMoney als Friend-Funktion der Klasse BankAccount deklariert, sodass dies möglich ist Greifen Sie auf das private Mitglied balance zu und erhöhen Sie seinen Wert. 🎜

Das obige ist der detaillierte Inhalt vonWelchen Umfang haben die Berechtigungen von C++-Friend-Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn