Pointers to Base Class
16.10.2. Virtual member
Untuk mendeklarasikan elemen sebuah kelas yang akan kita redefinisika di kelas turunan kita harus mendauluinya dengan keyword virtual maka pointer ke obyek yang menunjuk klas tersebut dapat digunakan dengan baik. Program 16.32 include iostream.h class CSegibanyak { protected: int lebar, tinggi; public: void set_nilai int a, int b { lebar=a; tinggi=b; } virtual int luas void { return ; } }; class CSegiempat: public CSegibanyak { public: int luas void { return lebar tinggi; } }; class CSegitiga: public CSegibanyak { public: int luas void { return lebar tinggi 2 ; } }; int main { CSegiempat rect; CSegitiga trgl; CSegibanyak poly; CSegibanyak ppoly1 = rect; CSegibanyak ppoly2 = trgl; 2008 | Direktorat Pembinaan SMK 575 CSegibanyak ppoly3 = poly; ppoly1‐set_nilai 4 , 5 ; ppoly2‐set_nilai 4 , 5 ; ppoly3‐set_nilai 4 , 5 ; cout ppoly1‐luas endl; cout ppoly2‐luas endl; cout ppoly3‐luas endl; system PAUSE ; return EXIT_SUCCESS; } Keluaran program diatas adalah sebagai berikut: 20 10 Sekarang kita punya 3 kelas CSegibanyak, CSegiempat dan CSegitiga yang memiliki anggota yang sama: lebar, tinggi, set_nilai dan luas. Luas telah didefinisikan sebagai virtual karena itu akan didefinisikan kembali pada kelas turunan. Anda dapat melakukan verifikasi jika anda ingin melakukannya dengan menghilangkan keyword virtual dari kode program diatas dan kemudian anda eksekusi program tersebut, hasil akan menhadi 0 untuk ketiga segibanyak bukannya 20,10,0. ini disebabkan karena pemanggilan terhadap obyek CSegiempat::luas, CSegitiga::luas dan CSegibanyak::luas, akan mengacu ke CSegibanyak::luas dan akan memanggil fungsi yang sama tersebut CSegibanyak::luas untuk semua pemanggilan melalui obyek kelas turunan karena pemanggilan- nya menggunakan pointer dengan tipe CSegibanyak. Ini menunjukan kepada anda tentang kegunaan dari keyword virtual, yang mengijinkan memberanggota dari kelas turunan dengan nama yang sama dengan member dari kelas dasar base class untuk dipanggil dari pointer dengan tipe kelas dasar bas e class tetapi melaksanakan fungsi tersebut yang didefinisikan pada kelas turunan. Untuk memahami polymorphism terlebih lanjut harus mengenal fungsi virtual karena fungsi ini merupakan dasarnya. Fungsi anggota dari suatu class dapat dijadikan fungsi virtual. Jika fungsi ini dideklarasikan kembali pada turunan dan suatu pointer yang menunjuk class dasar diciptakan, pointer dapat memilih obyek yang tepat sekiranya fungsi anggota tersebut dipanggil via pointer. Untuk lebih memahami lihat contoh berikut: Program 16.33 include cstdlib include iostreamParts
» Buku Bahasa Pemrograman Lengkap
» Pendahuluan DASAR-DASAR PEMROGRAMAN KOMPUTER
» Perangkat Keras Komputer DASAR-DASAR PEMROGRAMAN KOMPUTER
» Erasable Read Only Memory EPROM
» Electrically Erasable ROM EEROM
» Kerja Komputer DASAR-DASAR PEMROGRAMAN KOMPUTER
» Bilangan Desimal Sistem Bilangan
» Bilangan Biner Bilangan Oktal
» Bilangan Heksadesimal Konversi Bilangan
» Data Karakter Sistem Bilangan
» Pemrograman Komputer DASAR-DASAR PEMROGRAMAN KOMPUTER
» Bahasa pemrograman DASAR-DASAR PEMROGRAMAN KOMPUTER
» Bagian Deklarasi Penulisan Bahasa pemrograman
» Statement Penulisan Bahasa pemrograman
» Element Bahasa Pemrograman DASAR-DASAR PEMROGRAMAN KOMPUTER
» Bahasa C++ DASAR-DASAR PEMROGRAMAN KOMPUTER
» Bagian Komentar Struktur Bahasa C++
» Bagian Pengarah Kompiler Struktur Bahasa C++
» Deklarasi Dan Definisi Struktur Bahasa C++
» Input Dan Output DASAR-DASAR PEMROGRAMAN KOMPUTER
» Soal Latihan DASAR-DASAR PEMROGRAMAN KOMPUTER
» Bahasa Assembly Bahasa Tingkat Tinggi
» Bahasa Generasi 3 4 Bahasa Pemrograman untuk tujuan tertentu
» Tahapan Kompilasi: Compiler dan Intepreter
» Pemrograman Terstruktur Tipe Pemrograman
» Pemrograman procedural dan terstruktur
» Algoritma BAHASA DAN ALGORITMA PEMROGRAMAN
» Ciri Algoritma BAHASA DAN ALGORITMA PEMROGRAMAN
» Penerapan Algoritma BAHASA DAN ALGORITMA PEMROGRAMAN
» Notasi Algoritma BAHASA DAN ALGORITMA PEMROGRAMAN
» Deskriptif Algoritma BAHASA DAN ALGORITMA PEMROGRAMAN
» Flow Chart BAHASA DAN ALGORITMA PEMROGRAMAN
» Pseudo code BAHASA DAN ALGORITMA PEMROGRAMAN
» Pengertian Data TIPE DATA DAN OPERATOR
» Indentifier TIPE DATA DAN OPERATOR
» Jenis Variabel Deklarasi Variabel Kelas Variabel
» Tipe Data Karakter Tipe Data
» Tipe Data String Tipe Data Bilangan Bulat
» Tipe Data Bilangan Real atau Pecahan
» Tipe Data Logika Enumerasi ENUM
» Tipe Data Larik array Tipe Data Struct, Union
» Operator Bahasa C++ TIPE DATA DAN OPERATOR
» Operator Increment dan Decrement Operator sizeof
» Operator Aritmatika Operator Binary
» Operator Relasional Operator logika
» Operator Bitwise atau manipulasi bit
» Operator Ternary TIPE DATA DAN OPERATOR
» Ungkapan Ekspresi Soal Latihan
» Operator Increment dan Decrement
» Ekspresi Matematika ++ dan - -
» Pernyataan FOR STRUKTUR PERULANGAN
» Pernyataan WHILE STRUKTUR PERULANGAN
» Perulangan DO-WHILE STRUKTUR PERULANGAN
» Pernyataan NESTED DO-WHILE STRUKTUR PERULANGAN
» Pernyataan Break STRUKTUR PERULANGAN
» Pernyataan Continue STRUKTUR PERULANGAN
» Soal Latihan STRUKTUR PERULANGAN
» Pengertian Statement STATEMENT KENDALI
» Operator Relasi STATEMENT KENDALI
» Statement IF STATEMENT KENDALI
» Pernyataan IFELSE IF STATEMENT KENDALI
» Pernyataan NESTED IF STATEMENT KENDALI
» Variabel Boolean dan Operator
» Aplikasi Pernyataan IF pada Menu
» Soal Latihan STATEMENT KENDALI
» Prosedur PROSEDUR DAN SUBROUTIN
» Parameter Prosedur PROSEDUR DAN SUBROUTIN
» Pemanggilan Prosedur PROSEDUR DAN SUBROUTIN
» Sub Routin PROSEDUR DAN SUBROUTIN
» Sub Rutin dalam Bahasa Pemrograman
» Function yang Mengembalikan Nilai
» Function yang Tidak Mengembalikan Nilai
» Call by Value dan Call by References
» Parameter dengan Nilai Default
» Overloading PROSEDUR DAN SUBROUTIN
» Soal Latihan PROSEDUR DAN SUBROUTIN
» Fungsi Void Pemanggilan Fungsi
» Pengembalian Nilai Boolean Menggunakan Fungsi dalam program menu
» Variabel Static Local FUNGSI
» Konstanta String String pada bahasa C
» Variabel String String pada bahasa C
» Fungsi strcmp Membandingkan string
» Operator logika NOT Pengurutan String
» Konversi StringNumeric OPERASI STRING
» Menguji sebuah Karakter OPERASI STRING
» Deskripsi Fungsi Karakter OPERASI STRING
» Konversi Karakter OPERASI STRING
» Menulis string OPERASI STRING
» Pointer untuk menguraikan String
» Membuat Class String Sendiri
» Pengertian Array OPERASI STRING
» Deklarasi Array OPERASI STRING
» Array Satu Dimensi Array Multi Dimensi
» Inisialisasi Array Mengurutkan Elemen Array
» Contoh Program Array OPERASI STRING
» Pengertian Rekursif OPERASI STRING
» Pengertian Teknik Iteratif Perbandingan Teknik Rekursif dan Teknik Iteratif
» Algoritma Teknik Rekursif Algoritma Teknik Iteratif
» Penerapan Algoritma Rekursif OPERASI STRING
» Penerapan Algoritma Iteratif OPERASI STRING
» Latihan Soal Pengertian Grafik
» Grafik Library OPERASI STRING
» Grafik Sederhana OPERASI STRING
» Animasi Grafik OPERASI STRING
» Dasar-dasar Game OPERASI STRING
» Pengertian File OPERASI FILE
» Hirarki class stream OPERASI FILE
» File InputOutput C++ OPERASI FILE
» Pembacaan String OPERASI FILE
» Routin-routin Konversi File OPERASI FILE
» Rutin-Rutin pada C++ OPERASI FILE
» File sekuensial OPERASI FILE
» Program Operasi FiIe 1. Membuka file
» fgets dan fputs, Sintaknya dapat diltulis sebagai berikut: fscanf dan fprintf
» Menulis File fread dan fwrite fungsi operasi ini antara lain:
» Menambah Data File Memeriksa File
» Pemrograman pointer OPERASI FILE
» Deklarasi variabel bertipe pointer
» Inisialisasi Pointer OPERASI FILE
» sizeofc; Pointer untuk fungsi
» Setelah pernyataan OPERASI FILE
» Mengakses dan Mengubah isi Pointer
» Pointer dan Array pointer to array
» Pointer dan String Array dan Pointer
» Array dari Pointer Array of Pointer
» Pointer Sebagai Parameter Fungsi Pointer Sebagai Fungsi Keluaran
» Fungsi Pointer ke Static Class Member Function
» Fungsi Pointer pada Class anggota Fungsi Non-static
» Obyek dan Class OPERASI FILE
» Deklarasi Class OPERASI FILE
» Struktur dan kelas OPERASI FILE
» Constructor dan destructor OPERASI FILE
» Overloading Constructor OPERASI FILE
» Reference this Overloading Method
» Akses Public Access Modifier
» Contoh Program Class OPERASI FILE
» Pemrograman Object-Oriented dan Prosedural
» Perbedaan Object-Oriented dan Prosedural
» Abstraksi Pewarisan Pemrograman berorientasi objek
» Immutable obyek PEMROGRAMAN BERORIENTASI OBJEK
» Pemrograman Modular Modularitas dan Abstraksi Data
» Priority Queue Modularitas dan Abstraksi Data
» Modularitas dan Penyebunyian Informasi
» Interface PEMROGRAMAN BERORIENTASI OBJEK
» Interface dan Class PEMROGRAMAN BERORIENTASI OBJEK
» Hubungan dari Interface ke Class
» Pewarisan Antar Interface Soal Latihan
» Realisasi Prosedur dan Fungsi dalam Class
» Class Private , Class Public, dan Class Protected
» Friend PEMROGRAMAN BERORIENTASI OBJEK
» Friend class PEMROGRAMAN BERORIENTASI OBJEK
» Class Basis Virtual PEMROGRAMAN BERORIENTASI OBJEK
» Inheritance between class PEMROGRAMAN BERORIENTASI OBJEK
» Multiple inheritance PEMROGRAMAN BERORIENTASI OBJEK
Show more