Friend merupakan sebuah fungsi, metode atau kelas yang diizinkan mengakses atribut maupun metode satu atau lebih kelas lain yang menjadi temannya walaupun atribut dan metode yang diakses memiliki izin akses private, protected. Friend function sebenarnya melanggar aturan pemrograman berorientasi objek tentang enkapsulasi dan hal izin akses prĂvate dan protected tidak sembarang bisa diakses oleh kelas lain,namun tujuan adanya friend function yaitu untuk memudahkan pemrograman untuk merancang kelas-kelas yang akan dibuat, terutama dalam tahap pengembangan.
Secara umum friend function memiliki karakteristik, yaitu sebagai berikut:
1. Friend function bukan merupakan bagian/isi sebuah class
2. Karena itu friend function tidak bisa dijalankan melalui objek dari class yang menjadi temannya.
3. Akses ke data member mealui objeknya
4. Bisa dideklarasikan di bagian public, prĂvate, maupun protected
5. Umumya memakai obyek sebagai argumen/parameter fungsinya
Yang bisa dijadikan friend function tidak hanya fungsi lepas yang berada di luar class. Tetapi juga bisa dibuat frien function yang berasal dari member function class lain. Ilustrasinya yaitu:
Class X
{
…
…
Int fungsi_(void);
}
Class Y
{
…
Friend int X::fungsi_1(void);
}
Contoh implementasi:
#include
class panjang;
class lebar
{
private:
int l;
public:
void input()
{
cout<<"masukkan lebarnya= ";cin>>l;
};
friend void luas (panjang,lebar);
};
class panjang
{
int p;
public:
void input()
{
cout<<"masukkan panjangnya= ";cin>>p;
};
friend void luas (panjang,lebar);
};
void luas (panjang x,lebar y)
{
int luas;
luas=x.p*y.l;
cout<<"maka luas persegi panjang= "<<<"\n";
};
void main()
{
panjang p;
lebar l;
p.input();
l.input();
luas (p,l);
}
class panjang;
class lebar
{
private:
int l;
public:
void input()
{
cout<<"masukkan lebarnya= ";cin>>l;
};
friend void luas (panjang,lebar);
};
class panjang
{
int p;
public:
void input()
{
cout<<"masukkan panjangnya= ";cin>>p;
};
friend void luas (panjang,lebar);
};
void luas (panjang x,lebar y)
{
int luas;
luas=x.p*y.l;
cout<<"maka luas persegi panjang= "<
};
void main()
{
panjang p;
lebar l;
p.input();
l.input();
luas (p,l);
}
Tidak ada komentar:
Posting Komentar