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

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

WBOY
WBOYOriginal
2024-04-16 08:57:02888Durchsuche

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);

声明规则

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

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

实战案例

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

class MyClass {
private:
    int _data;
public:
    // ...
};

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

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

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

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

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
🎜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!

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