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...

Protokol Pendukung VoIP

Protokol -protokol yang menjadi penunjang untuk  jaringan VoIP adalah : Protokol TCP/IPTCP/IP (Transfer Control Protocol/Internet Protocol) merupakan sebuah protokol yang digunakan pada jaringan Internet. Protokol ini terdiri dari dua bagian besar, yaitu TCP dan IP. Application layer Fungsi utama lapisan ini adalah pemindahan file. Perpindahan file dari sebuah sistem ke sistem lainnya yang berbeda memerlukan suatu sistem pengendalian untuk menangatasi adanya ketidak cocokan sistem file yang berbeda beda. Protokol ini berhubungan dengan aplikasi. Salah satu contoh aplikasi yang telah dikenal misalnya HTTP (Hypertext Transfer Protocol) untuk web, FTP(File Transfer Protocol) untuk perpindahan file, dan TELNET untuk terminal maya jarak jauh. TCP (Transmission Control Protocol) Dalam mentransmisikan data pada layer Transpor ada dua protokol yang berperan yaitu TCP danUDP. TCP merupakan protokol yang connection-oriented yang artinya menjaga reliabilitas hubungan komunikadasi end-to-e...

Jualan gambar dan video di internet, bisa?

 Disclaimer: Saya bukan mau sok ngajarin sih ya, soalnya saya aja baru beberapa waktu ini kepikiran dan nemu beberapa referensi untuk Jualan gambar dan video di internet. Jadi mohon maaf ya kalau ada pertanyaan yang tidak bisa saya jawab secara teknis karena masih newbie. Jadi ceritanya begini ya. Awalnya merasa ternyata memori di handphone itu kok cepat banget habisnya. Pas dicek ternyata didominasi sama gambar dan video. Kepikiran untuk rutin pindahin gambar sama video dari handphone ke personal computer saya. Tapi lama-lama kok malah harddisk PC nya yang full. Alhasil mulailah ngorek-ngorek file lama yang mana tau bisa dibuang untuk menghemat space harddisk. Diliatin satu per satu gambar sama video lama, pengen dihapus sayang tapi kalau ga dihapus jadi sampah. Nah dari sinilah mulai kepikiran kenapa ga di-upload aja ke internet, ke cloud gitu, biar nantinya bisa dibuka kapan aja dan dimana saja.  Pertanyaan selanjutnya kan sayang juga gambar-gambar yang sifatnya tidak priva...