Après avoir appris la fonction ami, regardons à nouveau la classe ami. Le même principe et le même usage sont les mêmes. Si une classe A est déclarée comme classe amie d'une autre classe B, alors toutes les fonctions membres de la classe A peuvent accéder aux membres de la classe B. La méthode d'utilisation est la même, il suffit de la déclarer dans la classe B.
C'est toujours la fonction du programme de la section précédente, apportons quelques modifications :
#include<iostream>#include<math.h>usingnamespacestd;classPoint{private:doublex;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;}
On voit que nous avons défini une autre classe d'outils, qui peut obtenir les coordonnées horizontales et verticales d'une classe de points et trouver la distance entre ce point et l'origine. Elle est implémentée par trois méthodes et encapsulée dans une classe Tool. Et déclarez la classe Friend dans la classe Point, et vous pourrez voir comment l'utiliser.
Veuillez apprécier le rôle des amis et comprendre la signification des amis.
Enfin, nous résumons les avantages et les inconvénients du mécanisme ami comme suit :
Avantages : Accès plus pratique et plus rapide aux membres privés au sein de la classe.
Inconvénients : Casse l'idée d'encapsulation en C++.
S'il vous plaît, utilisez vos amis à bon escient !