フレンド機能を学んだ後、もう一度フレンドクラスを見てみましょう。原理と使い方は同じです。クラス A が別のクラス B のフレンド クラスとして宣言されている場合、クラス A のすべてのメンバー関数はクラス B のメンバーにアクセスできます。使用方法は同じで、クラス B で宣言するだけです。
これは前のセクションのプログラム関数のままですが、いくつか変更を加えてみましょう。
#include<iostream>#include<math.h>usingnamespacestd;classPoint{private:doublex;doubley;public:Point(doublea,doubleb){x=a;y=b;}intGetPoint(){cout<<(<< x<<,<<y<<);return0;}int distancetoLine(){}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;}
点クラスの水平座標と垂直座標を取得し、この点と原点の間の距離を見つけることができる別のツール クラスを定義したことがわかります。これは 3 つのメソッドによって実装され、クラス Tool にカプセル化されています。そして、Point クラスでフレンドクラスを宣言すると、使い方がわかります。
友達の役割を大切にし、友達の意味を理解してください。
最後に、フレンドメカニズムのメリットとデメリットを以下にまとめます。
利点: クラス内のプライベート メンバーへのアクセスがより便利かつ高速になります。
短所: C++ のカプセル化の概念が崩れます。
友達を賢く使ってください!