Heim > Backend-Entwicklung > C++ > Was sind die Deklarationsregeln für C++-Friend-Funktionen?

Was sind die Deklarationsregeln für C++-Friend-Funktionen?

WBOY
Freigeben: 2024-04-16 08:57:02
Original
982 Leute haben es durchsucht

Die Regeln für die Deklaration von Friend-Funktionen lauten wie folgt: Die Deklaration muss außerhalb der Klasse erfolgen. Kann als Mitgliedsfunktion oder globale Funktion deklariert werden. Objekte einer Klasse können durch Zeiger oder Referenzen übergeben werden.

C++ 友元函数的声明规则有哪些?

C++-Friend-Funktionsdeklarationsregeln

Friend-Funktionsdeklaration

Eine Friend-Funktion ist eine spezielle Funktion, die auf private Mitglieder einer Klasse zugreifen kann. Um eine Friend-Funktion in C++ zu deklarieren, verwenden Sie das Schlüsselwort friend wie folgt: friend 关键字,如下所示:

// 声明 MyClass 类的友元函数 printInfo()
friend void printInfo(const MyClass& obj);
Nach dem Login kopieren

声明规则

以下是在 C++ 中声明友元函数的规则:

  • 友元函数的声明必须位于类的外部。
  • 友元函数可以声明为成员函数(带作用域解析符)或全局函数(不带作用域解析符)。
  • 可以通过指针或引用来传递类的对象。

实战案例

考虑以下 MyClass 类,它有私有成员变量 _data

class MyClass {
private:
    int _data;
public:
    // ...
};
Nach dem Login kopieren

我们可以定义一个友元函数 printInfo() 来访问 _data

// 声明 printInfo() 为 MyClass 的友元函数
friend void printInfo(const MyClass& obj) {
    std::cout << "Data: " << obj._data << std::endl;
}
Nach dem Login kopieren

在主函数中,我们可以实例化 MyClass

int main() {
    MyClass obj;
    obj._data = 42;  // 访问私有成员(仅在友元函数中允许)
    printInfo(obj);  // 调用友元函数
    return 0;
}
Nach dem Login kopieren

Deklarationsregeln

Im Folgenden sind die Regeln zum Deklarieren von Friend-Funktionen in C++ aufgeführt:🎜
  • Die Deklaration einer Friend-Funktion muss außerhalb der Klasse erfolgen.
  • Friend-Funktionen können als Member-Funktionen (mit Scope-Resolver) oder globale Funktionen (ohne Scope-Resolver) deklariert werden.
  • Objekte einer Klasse können durch Zeiger oder Referenzen übergeben werden.
🎜🎜Praktischer Fall🎜🎜🎜Betrachten Sie die folgende MyClass-Klasse, die eine private Mitgliedsvariable _data hat: 🎜
Data: 42
Nach dem Login kopieren
🎜Wir können eine definieren Friend-Funktion printInfo() für den Zugriff auf _data: 🎜rrreee🎜In der Hauptfunktion können wir das MyClass-Objekt instanziieren und die Friend-Funktion dazu aufrufen private Daten drucken: 🎜rrreee🎜🎜Ausgabe: 🎜🎜rrreee

Das obige ist der detaillierte Inhalt vonWas sind die Deklarationsregeln für C++-Friend-Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage