Skip to main content

Apa itu kelas virtual?

Kelas virtual adalah kelas yang dialokasikan hanya sekali dalam memori, sehingga anak -anak dari kelas itu hanya menggunakan satu salinan kelas orang tua yang ditetapkan dalam memori.Kelas adalah sekelompok objek yang memiliki sifat atau atribut umum.Membuat kelas virtual memberikan bahasa pemrograman yang berorientasi objek kemampuan menggunakan warisan berganda ketika kelas induk generasi kedua atau lebih berasal dari kelas dasar leluhur yang umum.Bergantung pada bahasa pemrograman komputer yang dirujuk, kata kunci virtual, kata kunci yang serupa, atau sintaksis dan semantik kelas digunakan untuk menyiratkan bahwa kelas tertentu dianggap virtual.

Tidak semua bahasa pemrograman yang berorientasi objek memungkinkan warisan berganda,adalah ketika kelas anak dapat diturunkan dari beberapa kelas orang tua secara bersamaan.Dalam bahasa pemrograman seperti C ++, kelas dapat mewarisi semua data anggota dan fungsi anggota dari kedua kelas orang tua sekaligus dan memiliki akses ke kedua set data dan fungsi orang tua.Bahasa lain yang mendukung warisan berganda termasuk Perl, Python, TCL, dan Eiffel.

Masalah terjadi dalam hierarki warisan berganda ketika dua atau lebih kelas orang tua yang digunakan untuk membuat kelas anak pada awalnya berasal dari hanya satu atau kelas kakek nenek yang sama.Ini disebut masalah berlian, nama yang berasal dari bagaimana hierarki akan terlihat dalam situasi ini.Ketika program kompiler mencoba untuk membuat kelas, seperti kelas cucu yang terbuat dari dua kelas orang tua dengan kakek nenek yang umum, dua salinan kakek -nenek dibuat dalam memori, satu untuk setiap orang tua.

Karena ambiguitas yang disebabkan oleh banyak salinan kakek nenek yang sama dalam memori, kompiler tidak dapat memastikan salinan kakek nenek mana yang harus digunakan cucu untuk mengakses data atau fungsi kakek nenek.Untuk memperbaiki situasi ini, dalam C ++ kakek -nenek dibuat menjadi kelas virtual ketika mendeklarasikan orang tua.Ini menyebabkan kompiler hanya membuat satu salinan kakek -nenek dalam memori yang dibagikan oleh kedua orang tua.Setelah kakek nenek menjadi kelas virtual, kompiler tidak memiliki masalah memutuskan bagaimana cucu harus mengakses kakek nenek karena hanya ada satu salinan kakek nenek.

Perhatian besar harus diambil ketika menyusun hierarki kelas, terutama ketika mereka akan dimasukkanatau menjadi basis untuk hierarki yang jauh lebih besar di masa depan.Pemanfaatan yang tepat dari kelas virtual memberikan hierarki kelas garis lintang yang lebih besar dalam pengembangan;Namun, mereka memiliki potensi untuk menyebabkan kesalahan yang sulit ditemukan.Studi tentang prinsip -prinsip teknik pemrograman komputer yang solid akan membantu memastikan bahwa efek samping yang tidak terduga dari organisasi program yang tidak tepat tidak terjadi.