C++

Fungsi Virtual C++

Fungsi Virtual C++
Pada artikel ini, kita akan membahas fungsi virtual dalam bahasa pemrograman C++. Fungsi virtual digunakan dalam C++ untuk mencapai runtime/polimorfisme dinamis. Kita akan melihat beberapa contoh untuk memahami konsep fungsi virtual dalam C++.

Fungsi virtual adalah fungsi anggota yang didefinisikan di kelas dasar/kelas induk dan didefinisikan ulang di kelas turunan. Fungsi virtual memungkinkan memanggil versi kelas turunan dari fungsi menggunakan referensi atau penunjuk ke kelas dasar.

Mari kita lihat beberapa contoh untuk memahami konsep fungsi virtual.

Pada contoh pertama, kita akan melihat perilaku fungsi non-virtual, dan kemudian pada contoh kedua, kita akan menjelaskan perilaku fungsi virtual.

Contoh 1

Dalam kode contoh berikut, kami memiliki dua kelas: kelas dasar dan kelas turunan.

Kelas dasar memiliki fungsi anggota, i.e., tampilan(). Kelas turunan diwarisi dari kelas dasar dan mendefinisikan ulang fungsi display().

Kemudian, kami telah mendeklarasikan pointer ke tipe kelas dasar dan menetapkan objek dari kelas turunan. Jadi, ketika kita memanggil fungsi display() menggunakan pointer tipe kelas dasar, fungsi kelas dasar akan dipanggil. Anda dapat melihat output di bawah ini.

Tetapi, dalam kasus seperti itu, C++ menyediakan cara untuk memanggil fungsi kelas turunan dengan mendeklarasikan fungsi kelas dasar sebagai virtual. Kita akan melihat contoh lain untuk memahami ini.

#termasuk
menggunakan namespace std;
kelas Base_Class

publik:
tampilan kosong()

cout << "I am in Base class" << endl;

;
kelas Derived_Class:Kelas_Basis publik

publik:
tampilan kosong()

cout << "I am in Derived class" kembali 0;

Contoh 2

Dalam contoh ini, kami telah mendefinisikan fungsi display() sebagai fungsi virtual di kelas dasar. Satu-satunya perbedaan dari program sebelumnya adalah kita telah menambahkan kata kunci virtual di depan “void display()” di kelas dasar.

Sekarang, jika Anda melihat output, ia mencetak, "Saya di kelas turunan", yang menunjukkan bahwa fungsi kelas turunan dipanggil.

Kata kunci virtual (fungsi virtual) di kelas dasar bertanggung jawab untuk memastikan bahwa fungsi yang tepat dipanggil untuk suatu objek.

#termasuk
menggunakan namespace std;
kelas Base_Class

publik:
tampilan kosong virtual()

cout << "I am in Base class" << endl;

;
kelas Derived_Class:Kelas_Basis publik

publik:
tampilan kosong()

cout << "I am in Derived class" kembali 0;

Contoh 3

Ini adalah contoh lain dari fungsi virtual. Seperti yang Anda lihat pada program di bawah ini, kami telah mendefinisikan kelas dasar, yaitu.e., Satwa. Ada dua kelas turunan: Anjing dan Sapi. Kami telah mendefinisikan fungsi eat() sebagai virtual di kelas dasar, i.e., Satwa. Kami kemudian mendefinisikan ulang fungsi eat() di kedua kelas turunan, Anjing dan Sapi.  Dalam fungsi main(), kita memiliki pointer dari kelas dasar, i.e., Hewan, dan kemudian melampirkan kelas turunan, Anjing. Jadi, ketika kita memanggil fungsi eat() menggunakan pointer kelas dasar, kita dapat memanggil versi kelas turunan dari fungsi eat(), i.e., fungsi eat() dari kelas Anjing. Demikian pula, ketika kita melampirkan objek kelas Cow, kita kemudian dapat memanggil versi kelas turunan dari fungsi eat(), i.e., fungsi eat() dari kelas Cow. Anda dapat dengan jelas melihat perilaku ini di output di bawah ini. 

#termasuk
menggunakan namespace std;
kelas Hewan

publik:
makan kosong virtual ()

cout << "Animal - base class - undefined eating behavior." << endl;

;
Anjing kelas: Hewan publik

publik:
batal makan()

cout << "Dog - eat non-veg!" << endl;

;
kelas Sapi: Hewan publik

publik:
batal makan()

cout << "Cow - eat veg!" a_ptr = Sapi baru();
a_ptr->makan();
kembali 0;

Kesimpulan

Pada artikel ini, saya telah menjelaskan konsep fungsi virtual dalam C++. C++ mendukung berbagai jenis polimorfisme - polimorfisme statis dan polimorfisme dinamis. Dengan bantuan fungsi virtual, kita dapat mencapai polimorfisme runtime/dinamis. Dalam artikel ini, kita hanya melihat konsep fungsi virtual dan bagaimana mencapai polimorfisme runtime. Saya telah menjelaskan tiga contoh kerja untuk menjelaskan fungsi virtual.

Cara Menginstal dan Memainkan Doom di Linux
Pengantar Doom Seri Doom berasal dari tahun 90-an setelah rilis Doom. Itu adalah hit instan dan sejak saat itu seri game telah menerima banyak penghar...
Vulkan untuk Pengguna Linux
Dengan setiap generasi baru kartu grafis, kami melihat pengembang game mendorong batas kesetiaan grafis dan selangkah lebih dekat ke fotorealisme. Tet...
OpenTTD vs Simutrans
Membuat simulasi transportasi Anda sendiri bisa menyenangkan, santai, dan sangat menarik. Itulah mengapa Anda perlu memastikan bahwa Anda mencoba game...