Objektorientert programmering i C ++ - Del 6 Innledning Dette er del 6 av min serie, Objektorientert programmering i C ++. En ekstern funksjon eller ekstern klasse (ikke-avledet klasse) får ikke tilgang til en beskyttet medlem av en klasse eller et privat medlem av en klasse. Unntak kan gjøres fra denne regelen. Hvis du gjør en ekstern funksjon eller ekstern klasse en venn til en bestemt klasse, da denne vennen kan få tilgang til beskyttet og privat medlem av klassen. I denne artikkelen viser jeg deg hvordan du kan få venner i C ++.
Jeg antar at du har lest den serien fra begynnelsen. Merk: Hvis du ikke kan se koden, eller hvis du tror noe mangler (ødelagt kobling, bilde fraværende), bare kontakte meg på [email protected]. Det er, kontakt meg for den minste problemet du har om hva du leser. Making Friends For å gjøre en funksjon eller klasse en venn til en bestemt klasse, skriver du bare prototypen av den funksjonen eller prototypen av klassen, i beskrivelsen av den aktuelle klassen, før prototypen, med nøkkelordet, venn og en plass. Det er alt.
Etter at vennen funksjonen eller venn klasse kan få tilgang til de beskyttede og private medlemmer av den aktuelle klassen. Vi skal se på noen eksempler. Friend Funksjon I følgende kode, er funksjonen myFn () en venn til klassen MyClass. # include bruker namespace std; class MyClass {beskyttet: int num1; private: int num2; venn int myFn (); }; int myFn () {MyClass myObj; myObj.num1 = 2; myObj.num2 = 3; domstol int main () {myFn (); returnere 0; } Les gjennom koden ovenfor og prøve det. Det bør kompilere og gi deg resultater.
Å erklære (lag) en ekstern funksjon en venn til en klasse, i klassen beskrivelsen du skriver prototype av funksjonen, innledes med nøkkelordet, venn og en plass. I koden ovenfor, myFn () er en venn til MyClass. Så, i definisjonen av myFn () de beskyttede og private medlemmer av MyClass har vist. Friend Klasse I følgende kode er HisClass en venn til MyClass: # include bruker namespace std; class MyClass {beskyttet: int num1; private: int num2; venn klasse HisClass; }; klasse HisClass {public: void myMthd () {MyClass myObj; myObj.num1 = 2; myObj.
num2 = 3; domstol}; int main () {HisClass hisObj; hisObj.myMthd (); returnere 0; } Les gjennom koden ovenfor og prøve det. Det bør kompilere og gi deg resultater. Å erklære (lag) en klasse en venn til en bestemt klasse, i klassen beskrivelsen du skriver prototype av klassen, innledes med nøkkelordet, venn, en plass og nøkkelordet, klasse. I kode