Verschil tussen vriendenfunctie en vriendenklasse
Inhoud
De functie Vriend en vriendenklasse zijn de technieken die worden gebruikt om toegang te krijgen tot de privéleden van een klas met behulp van het trefwoord vriend. Het gemeenschappelijke verschil tussen de vriendenfunctie en de vriendenklasse is dat wanneer de vriendenfunctie wordt gebruikt, toegang tot de privéklasse-leden mogelijk is, maar in de vriendenklasse alleen de namen van de vriendenklasse en niet de privéleden van de klas.
De vriend functie of gebruikt door functie of klasse een negatieve impact kan hebben op het objectgeoriënteerde raamwerk omdat het de inkapseling wat tegen is Objectgeoriënteerde paradigma. Dit is de reden waarom de vriendenfunctie verstandig moet worden gebruikt, anders zou het kunnen breken de gegevens verbergen van de code.
Deze vriendenfunctie is geen van beide commutatieve en ook niet transitief. X is een vriend van Y betekent niet dat Y ook een vriend van X is. Als X een vriend van Y is en Y een vriend van Z is, betekent dit niet dat X een vriend van Z is.
-
- Vergelijkingstabel
- Definitie
- Belangrijkste verschillen
- Gevolgtrekking
Vergelijkingstabel
Basis voor vergelijking | Friend-functie | Vriendenklasse |
---|---|---|
basis- | Het is een functie die wordt gebruikt met een trefwoord voor een vriend om een niet-lidfunctie toegang te verlenen aan de privéleden van een klas. | Het is een klasse die wordt gebruikt met een trefwoord van een vriend om toegang te krijgen tot de privéleden van een andere klasse. |
Voorwaartse aangifte | Moet gebruikt worden. | Niet verplicht. |
Gebruik | Een vriendenfunctie kan worden gebruikt in sommige situaties van overbelasting van de operator. | Een vriendenklasse kan worden gebruikt wanneer een klas bovenop een andere klas wordt gemaakt. |
Definitie van vriendenfunctie
De vriend functie wordt gebruikt om toegang te krijgen tot de privé- en beschermde leden van een klasse door de niet-ledenfunctie toegang te verlenen. In dit type functie wordt een vriend-trefwoord gebruikt vóór de functienaam op het moment van aangifte. Er zijn enkele beperkende voorwaarden van toepassing op de vriendenfunctie. De eerste voorwaarde is dat de vriendenfunctie niet wordt overgenomen door een kindklasse. De tweede voorwaarde is dat opslagklasse-specificeerder mogelijk niet aanwezig is in de vriendenfunctie, wat betekent dat het niet als statisch en extern kan worden verklaard.
De vriendenfunctie wordt niet aangeroepen met een aanroepend object van de klasse. De voorbeelden van vriendfunctie zijn: een globale functie, lidfunctie van een klasse, functiemalplaatje kan een vriendfunctie zijn. Laten we het begrijpen aan de hand van een voorbeeld.
#include Een vriendenfunctie is vereist wanneer een functie toegang moet hebben tot twee of meer onafhankelijke klassen, interne leden. Aan de andere kant is een vriendenklasse nodig wanneer een klas toegang tot de leden van een andere klas vereist. Wanneer een functie met meerdere leden een vriend van die functie moet zijn, is het in dat geval beter om de vriendenklasse te gebruiken.
Gevolgtrekking