Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen statischen C++-Funktionen und Friend-Funktionen?

Was ist der Unterschied zwischen statischen C++-Funktionen und Friend-Funktionen?

WBOY
WBOYOriginal
2024-04-17 08:42:01595Durchsuche

Statische Funktionen sind Klassenmethoden, die nur auf statische Mitglieder zugreifen und diese Zeiger nicht empfangen. Freundfunktionen gehören nicht zu Klassen und können auf alle Mitglieder zugreifen und diese Zeiger empfangen.

C++ 静态函数与友元函数有什么区别?

Der Unterschied zwischen statischen Funktionen und Friend-Funktionen in C++

Statische Funktionen

  • gehören zu einer Klasse, gehören aber nicht zu einem bestimmten Objekt und können auch als Klassenmethoden bezeichnet werden.
  • Deklariert mit dem Schlüsselwort static.
  • Es kann nur auf statische Mitglieder der Klasse zugegriffen werden.
  • erhält den this-Zeiger nicht.

Freundfunktion

  • gehört keiner Klasse an.
  • Verwenden Sie die Schlüsselwortdeklaration Freund.
  • Sie haben Zugriff auf alle Mitglieder der Klasse, einschließlich privater Mitglieder.
  • kann diesen Zeiger empfangen.

Tabellenzusammenfassung

. DeklarationsmethodestatischeFreund
Funktionen Statische Funktionen Freundefunktionen
KlassenmitgliedschaftJa Nicht
Zugriff Klasse statisch Mitglieder Alle Mitglieder der Klasse
dieser Zeiger kann nicht empfangen werden
Schlüsselwörter Schlüsselwörter
Eigentlicher Kampffall

Statisches Funktionsbeispiel:

Berechnen Sie die Fläche eines Kreises

class Circle {
public:
    static double calculateArea(double radius) {
        return 3.14 * radius * radius;
    }
};

int main() {
    double radius = 5.0;
    double area = Circle::calculateArea(radius);
    cout << "圆的面积:" << area << endl;
    return 0;
}

Friend-Funktionsbeispiel:

Drucken Sie den Wert eines privaten Mitglieds

class Student {
private:
    int age;

public:
    friend void printAge(Student& student);
};

void printAge(Student& student) {
    cout << "年龄:" << student.age << endl;
}

int main() {
    Student student;
    student.age = 20;
    printAge(student);
    return 0;
}

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen statischen C++-Funktionen und 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