Приятелски функции ___________________________________________________________ 1
Характеризира удобен един клас ____________________________________________________ 1 функции няколко приятелски клас 3 ________________________________________________ член функции, приятелски _____________________________________________ друг клас 4
Приятелски класове ____________________________________________________________ 5
Кажи ми кои са вашите приятели и аз ще ти кажа кой има достъп до личните си данни.
Концепцията за капсулиране на данни - на основни понятия обектно-ориентирани. C ++ осигурява начин около това понятие с помощта на лесни за използване функции. Въпреки това, не трябва да го използвате, без основателна причина. C ++ позволява да декларират два вида класа приятели: приятелски функции и лесен за употреба клас.
Разполага с удобен за един клас
Обичайният начин за достъп до частни членовете на класа - използването на функцията за отворен член. Въпреки това, C ++ поддържа друг начин за достъп до частни членове на клас - с помощта на лесни за използване функции. Приятелски функции, които не са членове на този клас, но да имат достъп до своите лични членове. Освен това, една такава функция може да има достъп до частни членове на няколко класа.
За да се декларира функция приятелски настроени към един клас, определението на този клас се отнасят до нейния прототип, предшестван от един приятел на ключови думи. Ето един пример:
// показва името и координатите на текущата точка невалидни Print () CONST;
// връща стойността на разстоянието между текущите и целевите точки двойно Dist (точка Б) конст;
// връща стойността на разстоянието между две точки
приятел двойно Dist (Конст Dot А. Конст Dot В);
// връща стойността на разстоянието между две точки
двойно Dist (Dot * рА Dot * рВ.); // функция може да отнеме указател към точка // връща площта на триъгълник с върхове, дадени
двойно Площ (Конст Dot А. Конст Dot Б. конст Dot С);
двойно Dot. Dist (точка Б) конст
Dot.cpp файл
Dot A ( 'A', 3. 4). В ( "В", -3 4). Точка С ( "С");
CharToOem ( "дължина сегмент", S);
Cout<
CharToOem ( "триъгълник област", S); Cout<
В този пример, точка Dot обявен клас и решава проблема за изчисляване на разстояние между две точки. Проблемът е решен по три различни начина.
двойна функция Dot. Dist (Dot B) Конст Dot е клас член, и връща стойност на разстоянието между текущи и целеви места. CONST класиралият се казва на компилатора, че състоянието на текущия обект не трябва да се променя. Като параметър, функцията получава целия обект от типа точка. който заема 17 байта в паметта. функция член на класа се използва от оператора: А. Dist (В). където А е текущия обект, и обект B - параметър.
Функция приятел удвои Dist (Конст Dot А. Конст Dot Б) връща стойността на разстоянието между две точки. Конст квалификант на параметър казва на компилатора, че не трябва да се променят параметрите на състоянието. Както параметрите на функцията получава две препратки към обекти Dot тип. който е в памет на 4 байта всеки. Dist функция се използва от оператора (А. В). Тъй като функцията е приятелска клас Dot. Достъп до частните членовете на х и у параметри А и Б. които са обекти от типа точка. с помощта на оператора на точка, като например:
Използване на указатели и препратки към обекти като функция на параметрите, вместо обекти намалява количеството памет, излишни функция, както и времето на разговора.
Горният пример също се състои от решение на проблема за изчисляване на площта на триъгълник с помощта на глобални функции, двойно пространство (Конст Dot А. Конст Dot Б. конст Dot C), който е зало-
Лучано три препратки към условията и връща стойността на зоната на триъгълника. Функцията се нарича operato-
Свързани статии