Depois de aprender a função de amigo, vamos examinar a classe de amigo novamente. O mesmo princípio e uso são os mesmos. Se uma classe A for declarada como classe amiga de outra classe B, então todas as funções-membro da classe A podem acessar membros da classe B. O método de uso é o mesmo, basta declará-lo na classe B.
Ainda é a função do programa da seção anterior, vamos fazer algumas alterações:
#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(){PontoA(2.0,3.0);FerramentaT;T.GetX(A);T.GetY(A);T.dis(A);return0;}
Pode-se observar que definimos outra classe de ferramenta, que pode obter as coordenadas horizontais e verticais de uma classe de ponto e encontrar a distância entre este ponto e a origem. Ela é implementada por três métodos e encapsulada em uma classe Tool. E declare a classe amigo na classe Point e você verá como usá-la.
Por favor, aprecie o papel dos amigos e entenda o significado dos amigos.
Finalmente, resumimos as vantagens e desvantagens do mecanismo de amizade da seguinte forma:
Vantagens : Acesso mais conveniente e rápido aos membros privados da turma.
Desvantagens : Quebra a ideia de encapsulamento em C++.
Por favor, use os amigos com sabedoria!