Skillnaden mellan Friend-funktionen och Friend Class
Innehåll
Vänfunktionen och vänsklassen är de tekniker som används för att få åtkomst till privata medlemmar i en klass genom att använda vänsökord. Den vanliga skillnaden mellan vänfunktion och vänsklass är att när vänfunktionen används kan man få åtkomst till privata klassmedlemmar men i vänsklassen får man bara namnen på vänsklassen inte de privata medlemmarna i klassen.
De vän funktion om det används av funktion eller klass kan ge en negativ inverkan på det objektorienterade ramverket när det försvagar inkapsling vilket är emot objektorienterad paradigm. Detta är anledningen till att vänfunktionen måste användas klokt, annars kan den göra det ha sönder de data döljer av koden.
Denna vänfunktion är varken kommutativ och inte heller transitiv. X är en vän till Y drar inte slutsatsen att Y också är en vän till X. Om X är en vän till Y och Y är en vän till Z, innebär det inte att X är en vän till Z.
-
- Jämförelsediagram
- Definition
- Viktiga skillnader
- Slutsats
Jämförelsediagram
Grund för jämförelse | Vänfunktion | Vänsklassen |
---|---|---|
Grundläggande | Det är en funktion som används med ett vänsökord för att ge en icke-medlemsfunktion åtkomst till de privata medlemmarna i en klass. | Det är en klass som används med ett vänsökord för att få åtkomst till privata medlemmar i en annan klass. |
Vidarebefordran | Måste användas. | Inte obligatoriskt. |
Använda sig av | En vänsfunktion kan användas i vissa situationer för överbelastning av operatörerna. | En vänsklass kan användas när en klass skapas på toppen av en annan klass. |
Definition av vänsfunktion
De vänfunktion används för att komma åt de privata och skyddade medlemmarna i en klass genom att tillåta icke-medlemsfunktionen att få åtkomst. I denna typ av funktion används ett vänsökord före funktionsnamnet vid tidpunkten för deklarationen. Det finns vissa restriktiva villkor för vänfunktionen. Det första villkoret är att vänfunktionen inte ärvs av en barnklass. Det andra villkoret är att lagringsklassspecifikationen kanske inte finns i vänfunktionen, vilket innebär att den inte kan förklaras som statisk och extern.
Vänfunktionen kallas inte med ett påkallande objekt från klassen. Exemplen på vänfunktion är: en global funktion, en medlemsfunktion i en klass, funktionsmall kan vara en vänsfunktion. Låt oss förstå det med hjälp av ett exempel.
#inkludera En vänsfunktion krävs när en funktion behöver åtkomst till två eller flera oberoende klasser, interna medlemmar. Å andra sidan behövs en vänsklass när en klass kräver åtkomst till medlemmarna i en annan klass. När en funktion med flera medlemmar måste vara en vän till den funktionen, i så fall är det bättre att använda vänsklass.
Slutsats