Skip to main content

Dynamic Binding



Dalam C++, dynamic binding terjadi ketika sebuah virtual function dipanggil menggunakan sebuah reference atau sebuah pointer ke sebuah base class. Faktanya, reference atau pointer tersebut mungking merujuk ke base class yang lain atau derived-class object yang merupakan inti untuk dynamic binding. Pemanggilan virtual functions dipanggil melalui sebuah reference atau pointer yang di jalankan saat program berjalan (run time). Fungsi yang dipanggil adalah salah satu fungsi yang di defenisikan oleh tipe obyek yang sebenarnya kemana reference atau pointer itu merujuk.

Dynamic binding membolehkan pengguna menulis program yang menggunakan obyek dari bermacam tipe yang ada dalam hierarki inheritance tanpa memperdulikan tipe spesifik obyek. Program yang menggunakan classes perlu untuk tidak bingung antara fungsi yang didefenisikan pada base class ataupun pada derived class-nya.

Bayangkan sebuah hirarki class yang disebut Shape berfungsi sebagai dasar untuk kelas lainnya kelas (Triangle dan Square):

class Shape
{
public:
void virtual Draw() {} //dummy implementation
//..
};
class Square
{
public:
void Draw(); //overriding Shape::Draw
}
class Triangle
{
public:
void Draw(); //overriding Shape::Draw
}

Draw () adalah sebuah fungsi virtual dalam Shape. Fungsi Draw() dideklarasikan secara virtual dalam base class untuk mengaktifkan derived class untuk mengabaikan dan menyediakan implementasi sendiri. Keindahan dalam polymorphism adalah sebuah pointer atau referensi ke Shape sebenarnya boleh mengarah ke obyek dari Square atau Triangle:

void func(const Shape* s)
{
s->Draw()
}
int main()
{
Shape *p1= new Triangle;
Shape *p2 = new Square;
func(p1);
func(p2);
}

C++ membedakan antara statis dan dinamis obyek. Jenis statis ditentukan pada waktu kompilasi. Ini adalah jenis yang ditetapkan dalam Deklarasi. Sebagai contoh, kedua jenis statis p1 dan p2 adalah “Shape *”. Namun, jenis dinamis ini pointer ditentukan oleh jenis objek yang mereka rujuk: “Triangle *” dan “Square *”, masing-masing. Ketika func () memanggil fungsi anggota Draw () , C++ resolve yang dinamis jenis s dan memastikan bahwa sesuai versi Draw () adalah invoked. Perhatikan bagaimana kuat dinamis mengikat : Anda dapat berasal dari kelas-kelas tambahan yang akan melakukan override kepada fungsi Draw () bahkan setelah func () dikompilasi. Ketika func () invokes Draw () , C++ masih akan menyelesaikan panggilan dinamis sesuai dengan jenis s.

Comments

Popular posts from this blog

Keanggotaan, Keuntungan, dan Konfigurasi Umum VLAN

Keanggotaan dalam suatu  VLAN dapat dikelompokkan berdasarkan port yang digunakan, MAC address, atau tipe protokol yang digunakan. Berdasarkan Port Keanggotaan pada suatu VLAN dapat di dasarkan pada port yang digunakan oleh VLAN tersebut. Sebagai contoh, pada bridge/switch dengan 4 port, port 1, 2,  dan 4 merupakan VLAN 1 sedang port 3 dimiliki oleh VLAN 2, lihat Tabel 2.1 berikut ini. Tabel 2.1 VLAN berdasarkan port Port 1 2 3 4 VLAN ID 2 2 1 2 Kelemahannya adalah pengguna tidak bisa untuk berpindah-pindah. Apabila harus berpindah maka administrator  jaringan harus mengkonfigurasikan ulang. Berdasarkan MAC Address Keanggotaan suatu VLAN didasarkan pada MAC address dari setiap  komputer yang dimiliki oleh pengguna. Switch akan mencatat semua MAC address yang dimiliki oleh setiap Virtual LAN. Kelebihannya apabila pengguna berpindah-pindah maka dia akan tetap terkonfigurasi sebagai anggota dari VLAN tersebut. Kekurangannya adalah setiap mesin harus dikonfigurasi secara manual. S

Pengalaman Pembuatan SKCK di Bogor

Baru tadi siang saya ngerasa pelayanan terbaik dari kepolisian tentang pembuatan SKCK (Surat Keterangan Catatan Kepolisian). Sampai sekarang ini saya sudah 4 kali mengurus SKCK (seingat saya sih :p), tapi yang terakhir ini yang paling super super ajib. Mungkin gara-gara saya cuma perpanjang SKCK lama kali yah, makanya bisa cepat. Yang penting saya ga lama-lama di kantor polisi tadi, takut ntar malah dimasukin ke sel gara-gara tampang saya yang lumayan sangar :)). Tadi cuma butuh waktu kurang dari 30 menit buat selesaiin semua urusan SKCK, padahal dulu bisa sampe ganti hari baru dapat SKCK ini, huff. Wokeh, mungkin sekedar informasi aja buat yang belum tau, yang udah tau yah sekedar mengingatkan kembali, ini dia syarat-syarat pengurusan SKCK Pembuatan SKCK baru Surat pengantar

2 HARI PERJALANAN MENGELILINGI DANAU TOBA, SUMATERA UTARA - PART 2

Oke, mari kita lanjut lagi cerita tentang 2 hari perjalanan mengeliingi Danau Toba, Sumatera Utara . Sudah capek main air di pinggir danau, makan siang pun datang menghampiri. Walaupun Cuma nasi bungkus pake lauk ikan mas gulai, rasanya begitu enak dinikmati. Mungkin karena sudah kelaparan dan kecapaean kali yah. Sembari menunggu yang lain selesai dengan makan siangnya masing-masing, yang sudah selesai makan bersiap-siap untuk melanjutkan perjalanan menuju tempat penginapan. Tidak terlalu jauh dari lokasi permainan air, sekitar 45 menit perjalanan sudah sampai di penginapan. Penginapannya lumayan besar dan mempunyai halaman pinggir danau Toba sendiri. Sebagian dari teman-teman masih menyambung permainan airnya yang sempat terhenti siang itu. Sore hari pun menjelma dengan munculnya warna jingga di pinggir danau. Teman-teman memanfaatkan waktu tersebut untuk merebahkan badan sebentar di kamar masing-masing. Yang anak mudanya sih masih aja punya tenaga untuk bermain bola. Namanya juga a