Heim > Backend-Entwicklung > C++ > Können Friend-Funktionen andere Friend-Funktionen aufrufen?

Können Friend-Funktionen andere Friend-Funktionen aufrufen?

王林
Freigeben: 2024-04-15 22:45:01
Original
354 Leute haben es durchsucht

Freundfunktionen können sich gegenseitig anrufen. Eine Friend-Funktion ist eine spezielle Funktion, die Zugriff auf private Mitgliedsvariablen und private Methoden einer Klasse hat und so die Erstellung eng verwandter Funktionsgruppen ermöglicht, die auf die privaten Daten der jeweils anderen zugreifen können. Friend-Funktionen können sich wie gewöhnliche Funktionen gegenseitig aufrufen.

Können Friend-Funktionen andere Friend-Funktionen aufrufen?

Können sich Freundesfunktionen gegenseitig anrufen?

Friend-Funktion ist eine spezielle Funktion in C++, die auf private Mitgliedsvariablen und private Methoden einer Klasse zugreifen kann. Das Wort „Freunde“ bedeutet, wie der Name schon sagt, eine freundschaftliche Beziehung. Können sich Friend-Funktionen also gegenseitig aufrufen?

Die Antwort ist ja.

Freundfunktionen können sich gegenseitig anrufen, was eine der Stärken von Freundfunktionen ist. Es ermöglicht uns, eine Reihe eng miteinander verbundener Funktionen zu erstellen, die auf die privaten Daten anderer zugreifen können.

Syntax

Die Syntax zum Deklarieren einer Friend-Funktion zum Aufrufen einer anderen Friend-Funktion ähnelt einem normalen Funktionsaufruf. Zum Beispiel:

class MyClass {
    friend void func1();
    friend void func2();
};

void func1() {
    func2(); // 调用友元函数 func2
}
Nach dem Login kopieren

Praktischer Fall

Hier ist ein einfaches Beispiel für die Verwendung von Freundfunktionen, um sich gegenseitig anzurufen:

#include <iostream>

class ComplexNumber {
    private:
        double real, imag;

    public:
        ComplexNumber(double r, double i) : real(r), imag(i) {}

        // 以下声明为友元函数
        friend std::ostream& operator<<(std::ostream&, const ComplexNumber&);
        friend bool operator==(const ComplexNumber&, const ComplexNumber&);
};

// 友元函数重载运算符 <<
std::ostream& operator<<(std::ostream& os, const ComplexNumber& z) {
    os << z.real << " + " << z.imag << "i";
    return os;
}

// 友元函数重载运算符 ==
bool operator==(const ComplexNumber& z1, const ComplexNumber& z2) {
    // 友元函数可以访问私有成员变量 real、imag
    return z1.real == z2.real && z1.imag == z2.imag;
}

int main() {
    ComplexNumber z1(1.2, 3.4), z2(1.2, 3.4);

    std::cout << z1 << " == " << z2 << " : " << std::boolalpha << (z1 == z2) << std::endl;

    return 0;
}
Nach dem Login kopieren

Ausgabe

1.2 + 3.4i == 1.2 + 3.4i : true
Nach dem Login kopieren
In diesem Beispiel die Freundfunktion .

Das obige ist der detaillierte Inhalt vonKönnen Friend-Funktionen andere Friend-Funktionen aufrufen?. 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