Friend-Funktionen in C++ veranschaulicht

November 29

C++ bietet drei Stufen der Datenzugriffskontrolle innerhalb einer Klasse. Private Daten nicht mit nicht-Member-Funktionen oder außerhalb Klassen zugänglich. Aber manchmal müssen Sie Zugriff auf diese Daten in einem Programm, musst du einen Weg finden, diese Regel C++ umgehen. Die Freund-Funktion ermöglicht ein Programmierer Zugriff auf private Daten. Lesen Sie weiter zum Freund erlernen in C++ funktioniert.

Anweisungen

1 Finden Sie eine Klasse, die Private Mitglieder hat. Bedenken Sie, dass Daten, die Sie unter Zugriffsmodifizierer deklarieren nicht standardmäßig privat ist:

Klasse Tutorial {}

Int PrivateData; dieser Int ist privat und wird von der Außenwelt isoliert

Öffentliche:

Tutorial(): privateData(5); Standard-Konstruktor initialisiert PrivateData bis 5

// ...

2 Ermöglichen Sie eine nicht-Member-Funktion PrivateData in Schritt 1 zu lesen. Eine Memberfunktion ist jede Funktion, die außen Klasse Tutorial vorhanden ist. Vorausgehen Sie die Deklaration dieser Funktion durch das Schlüsselwort Freund und fügen Sie die Zeile im Privatbereich Tutorial:

Klasse Tutorial {}

Int PrivateData;

Freund void Display(); Unsere nicht-Member-Funktion

// ...

Das Schlüsselwort private sagt Klasse Tutorial, es Display(), Vertrauen kann, auch wenn es nicht seine Member-Funktionen ist.

3 Lassen Sie eine andere Klasse, die Zugriff auf der privaten Daten der Klasse Tutorial. Die Deklaration einer Klasse Freund ähnelt. Vor stehen Sie die Klassendeklaration Schlüsselbegriffen Freund und fügen Sie die Zeile im Bereich private Daten des Tutorials:

Klasse Tutorial {}

Int PrivateData;

Freund void Display();

Friend-Klasse außerhalb; Unsere externe Klasse

// ...

Jetzt hat die Klasse außerhalb von Zugriffsberechtigungen auf private Daten.

4 Studie eines C++-Programms, das die Freund-Konzepte, wie im folgenden Code veranschaulicht:

privatevoid Display() {}

Lernprogramm t;

Cout << t.privateData << Endl;

}

Klasse außerhalb {}

Öffentliche:

privatevoid Display() {}

Lernprogramm-X;

Cout << x.Display() << Endl;

};

Main() {}

Display();

Außen-X;

x.Display();

}

5 Sehen Sie das Ergebnis:

5

5

Tipps & Warnungen

  • Verwendung-Freund mit Urteilsvermögen. Bjarne Stoustrup (die Designer von C++) erstellt den private-Zugriffsmodifizierer aus gutem Grund: Kapselung und Datensicherheit. Mit anderen Worten, verwenden Sie "Freund" nicht als Hacker.