بعد تعلم وظيفة الصديق، دعونا نلقي نظرة على فئة الأصدقاء مرة أخرى، نفس المبدأ والاستخدام. إذا تم الإعلان عن فئة A كفئة صديق لفئة أخرى B، فيمكن لجميع وظائف الأعضاء في الفئة A الوصول إلى أعضاء الفئة B. طريقة الاستخدام هي نفسها، فقط قم بإعلانها في الفئة B.
لا تزال وظيفة البرنامج كما كانت في القسم السابق، فلنجري بعض التغييرات:
#include<iostream>#include<math.h>usingnamespacestd;classPoint{private:douplex;doubley;public:Point(doublea,doubleb){x=a;y=b;}intGetPoint(){cout<<(<< x<<,<<y<<;return0;}intdistancetoLine(){}friendclassTool;};classTool{public:doubleGetX(Point&A){cout<<Ax<<endl;returnA.x;}doubleGetY(Point&A){ cout<<Ay<<endl;returnA.y;}doubledis(Point&A){cout<<sqrt(Ax*A.x+Ay*Ay)<<endl;returnsqrt(Ax*A.x+Ay*Ay); }};intmain(){PointA(2.0,3.0);ToolT;T.GetX(A);T.GetY(A);T.dis(A);return0;}
يمكن ملاحظة أننا حددنا فئة أداة أخرى يمكنها الحصول على الإحداثيات الأفقية والرأسية لفئة النقطة والعثور على المسافة بين هذه النقطة والأصل. يتم تنفيذها بثلاث طرق وتغليفها في فئة Tool. وقم بإعلان فئة الصديق في فئة النقطة، ويمكنك معرفة كيفية استخدامها.
يرجى تقدير دور الأصدقاء وفهم معنى الأصدقاء.
وأخيرا، نلخص مميزات وعيوب آلية الصديق على النحو التالي:
المزايا : وصول أكثر ملاءمة وأسرع إلى الأعضاء الخاصين داخل الفصل.
العيوب : يكسر فكرة التغليف في لغة C++.
يرجى استخدام الأصدقاء بحكمة!