Nachdem wir die Friend-Funktion gelernt haben, schauen wir uns noch einmal die Friend-Klasse an. Das gleiche Prinzip und die gleiche Verwendung sind gleich. Wenn eine Klasse A als Freundklasse einer anderen Klasse B deklariert ist, können alle Mitgliedsfunktionen in Klasse A auf Mitglieder von Klasse B zugreifen. Die Verwendungsmethode ist dieselbe, deklarieren Sie sie einfach in Klasse B.
Es ist immer noch die Programmfunktion aus dem vorherigen Abschnitt, nehmen wir einige Änderungen vor:
#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;}
Es ist ersichtlich, dass wir eine weitere Werkzeugklasse definiert haben, die die horizontalen und vertikalen Koordinaten einer Punktklasse ermitteln und den Abstand zwischen diesem Punkt und dem Ursprung ermitteln kann. Sie wird durch drei Methoden implementiert und in eine Klasse Werkzeug gekapselt. Und deklarieren Sie die Friend-Klasse in der Point-Klasse, und Sie können sehen, wie sie verwendet wird.
Bitte schätzen Sie die Rolle von Freunden und verstehen Sie die Bedeutung von Freunden.
Abschließend fassen wir die Vor- und Nachteile des Friend-Mechanismus wie folgt zusammen:
Vorteile : Bequemerer und schnellerer Zugriff auf private Mitglieder innerhalb der Klasse.
Nachteile : Brecht die Idee der Kapselung in C++.
Bitte setzen Sie Freunde mit Bedacht ein!