Setelah mempelajari fungsi teman, mari kita lihat kembali kelas teman yang prinsip dan penggunaannya sama. Jika suatu kelas A dideklarasikan sebagai kelas teman dari kelas B yang lain, maka semua fungsi anggota di kelas A dapat mengakses anggota kelas B. Cara penggunaannya sama, cukup dideklarasikan di kelas B.
Masih fungsi program dari bagian sebelumnya, mari kita lakukan beberapa perubahan:
#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(Titik&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;}
Dapat dilihat bahwa kita telah mendefinisikan kelas alat lain, yang dapat memperoleh koordinat horizontal dan vertikal dari suatu kelas titik dan menemukan jarak antara titik ini dan titik asal. Hal ini diimplementasikan dengan tiga metode dan dienkapsulasi ke dalam kelas Alat. Dan deklarasikan kelas teman di kelas Point, dan Anda dapat melihat cara menggunakannya.
Mohon hargai peran sahabat dan pahamilah arti sahabat.
Terakhir, kami rangkum kelebihan dan kekurangan mekanisme teman sebagai berikut:
Keuntungan : Akses yang lebih nyaman dan cepat ke anggota pribadi di dalam kelas.
Kekurangan : Mematahkan ide enkapsulasi di C++.
Silakan gunakan teman Anda dengan bijak!