Unterschied zwischen Friend-Funktion und Friend-Klasse
Inhalt
Die Friend-Funktion und die Friend-Klasse sind die Techniken, mit denen mithilfe des Schlüsselworts friend auf die privaten Mitglieder einer Klasse zugegriffen werden kann. Der allgemeine Unterschied zwischen der Friend-Funktion und der Friend-Klasse besteht darin, dass bei Verwendung der Friend-Funktion auf die Mitglieder der privaten Klasse zugegriffen werden kann. In der Friend-Klasse wird jedoch nur auf die Namen der Friend-Klasse zugegriffen, nicht auf die privaten Mitglieder der Klasse.
Das Freund-Funktion Ob von Funktion oder Klasse verwendet, kann sich negativ auf das objektorientierte Framework auswirken, da es das schwächt Verkapselung das ist gegen die objektorientierter Paradigma. Dies ist der Grund, warum die Friend-Funktion sinnvoll verwendet werden muss, sonst könnte es sein brechen das Daten verstecken des Codes.
Diese Freund-Funktion gibt es auch nicht kommutativ und noch transitiv. X ist ein Freund von Y bedeutet nicht, dass Y auch ein Freund von X ist. Wenn X ein Freund von Y und Y ein Freund von Z ist, bedeutet dies nicht, dass X ein Freund von Z ist.
-
- Vergleichstabelle
- Definition
- Hauptunterschiede
- Fazit
Vergleichstabelle
Vergleichsbasis | Freund Funktion | Freund Klasse |
---|---|---|
Basic | Diese Funktion wird zusammen mit einem Schlüsselwort "friend" verwendet, um Nichtmitgliedern Zugriff auf die privaten Mitglieder einer Klasse zu gewähren. | Es ist eine Klasse, die mit einem Schlüsselwort "friend" verwendet wird, um auf die privaten Mitglieder einer anderen Klasse zuzugreifen. |
Vorwärtserklärung | Muss benutzt werden. | Nicht verpflichtend. |
Verwenden | In einigen Situationen, in denen der Bediener überlastet ist, kann eine Friend-Funktion verwendet werden. | Eine Freundesklasse kann verwendet werden, wenn eine Klasse über einer anderen Klasse erstellt wird. |
Definition der Freundfunktion
Das Freund Funktion wird verwendet, um auf die privaten und geschützten Member einer Klasse zuzugreifen, indem der Nicht-Member-Funktion der Zugriff gewährt wird. Bei dieser Art von Funktion wird zum Zeitpunkt der Deklaration ein Schlüsselwort friend vor dem Funktionsnamen verwendet. Es gibt einige einschränkende Bedingungen für die Freundschaftsfunktion. Die erste Bedingung ist, dass die Friend-Funktion nicht von einer untergeordneten Klasse geerbt wird. Die zweite Bedingung ist, dass der Speicherklassenspezifizierer in der Friend-Funktion möglicherweise nicht vorhanden ist. Dies bedeutet, dass er nicht als statisch und extern deklariert werden kann.
Die Friend-Funktion wird nicht mit einem aufrufenden Objekt der Klasse aufgerufen. Beispiele für die Friend-Funktion sind: Eine globale Funktion, eine Member-Funktion einer Klasse, eine Funktionsvorlage kann eine Friend-Funktion sein. Lassen Sie es uns anhand eines Beispiels verstehen.
#umfassen Eine Friend-Funktion ist erforderlich, wenn eine Funktion auf zwei oder mehr unabhängige Klassen, interne Mitglieder, zugreifen muss. Andererseits wird eine Freundesklasse benötigt, wenn eine Klasse den Zugriff auf die Mitglieder einer anderen Klasse erfordert. Wenn eine Funktion mit mehreren Mitgliedern ein Freund dieser Funktion sein muss, ist es in diesem Fall besser, die Klasse friend zu verwenden.
Fazit