หลังจากเรียนรู้ฟังก์ชันของเพื่อนแล้ว เรามาดูคลาสของเพื่อนกันอีกครั้ง หลักการและการใช้งานก็เหมือนเดิม หากคลาส 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;}intdistancetoLine(){}friendclassTool;};classTool{public:doubleG etX(จุด&A){cout<<Ax<<endl;returnA.x;}doubleGetY(จุด&A){cout<<Ay<<endl;returnA.y;} doubledis(จุด&A){cout<<sqrt(A x*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;}
จะเห็นได้ว่าเราได้กำหนดคลาสเครื่องมืออื่นซึ่งสามารถรับพิกัดแนวนอนและแนวตั้งของคลาสจุดและค้นหาระยะห่างระหว่างจุดนี้กับจุดเริ่มต้น มันถูกนำไปใช้โดยสามวิธีและห่อหุ้มไว้ในเครื่องมือคลาส และประกาศคลาสเพื่อนในคลาส Point แล้วสามารถดูวิธีใช้งานได้
โปรดชื่นชมบทบาทของเพื่อนและเข้าใจความหมายของเพื่อน
สุดท้ายนี้เราสรุปข้อดีและข้อเสียของกลไกเพื่อนดังนี้
ข้อดี : เข้าถึงสมาชิกส่วนตัวภายในชั้นเรียนได้สะดวกและรวดเร็วยิ่งขึ้น
ข้อเสีย : ทำลายแนวคิดของการห่อหุ้มใน C ++
โปรดใช้เพื่อนอย่างชาญฉลาด!