Polimorfisme adalah fitur yang kuat dari bahasa pemrograman berorientasi obyek C + +.Sebuah operator + berperilaku berbeda dalam konteks yang berbeda, seperti integer, float atau string yang mengacu konsep polimorfisme. Konsep di atas mengarah ke operator overloading. Konsep overloading juga merupakan cabang dari polimorfisme. Ketika keluar operator atau fungsi yang beroperasi pada tipe data baru itu kelebihan beban. Polimorfisme fitur ini mengarah pada konsep metode virtual.
Polimorfisme mengacu pada kemampuan untuk memanggil fungsi-fungsi yang berbeda dengan menggunakan hanya satu jenis fungsi panggil. Misalkan seorang programmer ingin kode kendaraan dari berbagai bentuk-bentuk seperti lingkaran, bujur sangkar, persegi panjang, dll Salah satu cara untuk mendefinisikan masing-masing dari kelas-kelas ini adalah memiliki fungsi anggota untuk masing-masing yang membuat kendaraan dari masing-masing bentuk. Pendekatan nyaman lain pemrogram dapat mengambil adalah untuk mendefinisikan sebuah basis kelas bernama Shape dan kemudian membuat sebuah instance dari kelas tersebut. Programmer dapat memiliki array yang menyimpan pointer ke semua objek yang berbeda dari kendaraan diikuti oleh struktur loop sederhana untuk membuat kendaraan, sesuai dengan bentuk yang dikehendaki, dengan memasukkan pointer ke array yang didefinisikan. Pendekatan ini mengarah kepada fungsi yang berbeda dieksekusi oleh panggilan fungsi yang sama. Polimorfisme digunakan untuk memberikan makna yang berbeda untuk konsep yang sama. Ini adalah dasar untuk pelaksanaan fungsi Virtual.
Dalam polimorfisme, satu fungsi atau operator berfungsi dalam banyak hal tergantung pada penggunaan berfungsi dengan benar. Agar hal ini terjadi, kondisi berikut harus berlaku:
1. Semua kelas-kelas yang berbeda harus berasal dari satu kelas dasar. Dalam contoh di atas, bentuk-bentuk kendaraan (lingkaran, segitiga, persegi panjang) yang dari satu kelas dasar yang disebut Shape.
2. Fungsi anggota harus dinyatakan virtual di kelas dasar. Dalam contoh di atas, fungsi anggota untuk membuat kendaraan harus dibuat sebagai virtual untuk kelas dasar.
SOURCE CODE
#include
class CPolygon {
protected:
int width, height;
public:
void set_values (int a, int b)
{ width=a; height=b; }
};
class CRectangle: public CPolygon {
public:
int area (void)
{ return (width * height); }
};
class CTriangle: public CPolygon {
public:
int area (void)
{ return (width * height / 2); }
};
int main () {
CRectangle rect;
CTriangle trgl;
CPolygon * ppoly1 = ▭
CPolygon * ppoly2 = &trgl;
ppoly1->set_values (4,5);
ppoly2->set_values (4,5);
cout << "Rectangle area = "<
}
No comments:
Post a Comment