C ++

Fungsi Maya C ++

Fungsi Maya C ++
Dalam artikel ini, kita akan membincangkan fungsi maya dalam bahasa pengaturcaraan C ++. Fungsi maya digunakan dalam C ++ untuk mencapai polimorfisme runtime / dinamik. Kami akan melihat beberapa contoh untuk memahami konsep fungsi maya di C++.

Fungsi maya adalah fungsi anggota yang ditakrifkan dalam kelas asas / kelas induk dan ditakrifkan semula pada kelas turunan. Fungsi maya membolehkan memanggil versi kelas fungsi yang diturunkan menggunakan rujukan atau penunjuk ke kelas asas.

Mari kita lihat beberapa contoh untuk memahami konsep fungsi maya.

Pada contoh pertama, kita akan melihat tingkah laku fungsi bukan maya, dan kemudian pada contoh kedua, kita akan menerangkan tingkah laku fungsi maya.

Contoh 1

Dalam kod contoh berikut, kami mempunyai dua kelas: kelas asas dan kelas turunan.

Kelas asas mempunyai fungsi anggota, i.e., paparan (). Kelas yang diturunkan diwarisi dari kelas asas dan mentakrifkan semula fungsi paparan ().

Kemudian, kami telah menyatakan penunjuk kepada jenis kelas asas dan memberikan objek dari kelas yang berasal. Jadi, apabila kita memanggil fungsi display () menggunakan penunjuk jenis kelas asas, fungsi kelas asas akan dipanggil. Anda dapat melihat output di bawah.

Tetapi, dalam kes seperti itu, C ++ menyediakan cara untuk memanggil fungsi kelas turunan dengan menyatakan fungsi kelas dasar sebagai maya. Kami akan melihat contoh lain untuk memahami perkara ini.

#sertakan
menggunakan ruang nama std;
kelas Base_Class

awam:
paparan kosong ()

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

;
kelas Derived_Class: public Base_Class

awam:
paparan kosong ()

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

Contoh 2

Dalam contoh ini, kami telah menentukan fungsi display () sebagai fungsi maya di kelas asas. Satu-satunya perbezaan dari program sebelumnya ialah kita telah menambahkan kata kunci maya di hadapan “void display ()” di kelas asas.

Sekarang, jika anda melihat outputnya, ia mencetak, "Saya berada di kelas turunan", yang menunjukkan bahawa fungsi kelas yang berasal disebut.

Kata kunci maya (fungsi maya) dalam kelas asas bertanggungjawab untuk memastikan bahawa fungsi yang betul dipanggil untuk objek.

#sertakan
menggunakan ruang nama std;
kelas Base_Class

awam:
paparan kekosongan maya ()

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

;
kelas Derived_Class: public Base_Class

awam:
paparan kosong ()

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

Contoh 3

Ini adalah satu lagi contoh fungsi maya. Seperti yang anda lihat dalam program di bawah ini, kami telah menentukan kelas asas, i.e., Haiwan. Terdapat dua kelas yang diturunkan: Anjing dan Lembu. Kami telah menentukan fungsi makan () sebagai maya di kelas asas, i.e., Haiwan. Kami kemudian telah mentakrifkan semula fungsi makan () di kedua-dua kelas yang berasal, Anjing dan Lembu.  Dalam fungsi utama (), kita mempunyai penunjuk kelas asas, i.e., Haiwan, dan kemudian melampirkan kelas yang berasal, Anjing. Oleh itu, apabila kita memanggil fungsi makan () menggunakan penunjuk kelas asas, kita boleh memanggil fungsi kelas makan ().e., fungsi makan () dari kelas Anjing. Begitu juga, ketika kita melampirkan objek kelas Lembu, kita kemudian dapat memanggil versi kelas turunan fungsi makan (), i.e., fungsi makan () dari kelas Lembu. Anda dapat melihat tingkah laku ini dengan jelas dalam output di bawah. 

#sertakan
menggunakan ruang nama std;
Haiwan kelas

awam:
kekosongan maya makan ()

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

;
anjing kelas: Haiwan awam

awam:
batal makan ()

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

;
kelas Lembu: Haiwan awam

awam:
batal makan ()

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

Kesimpulannya

Dalam artikel ini, saya telah menerangkan konsep fungsi maya di C++. C ++ menyokong pelbagai jenis polimorfisme - polimorfisme statik dan polimorfisme dinamik. Dengan bantuan fungsi maya, kita dapat mencapai polimorfisme runtime / dinamik. Dalam artikel ini, kami hanya melihat konsep fungsi maya dan bagaimana mencapai polimorfisme runtime. Saya telah menerangkan tiga contoh kerja untuk menerangkan fungsi maya.

Cara menangkap dan streaming sesi permainan anda di Linux
Pada masa lalu, bermain permainan hanya dianggap sebagai hobi, tetapi seiring dengan berjalannya waktu, industri permainan menyaksikan pertumbuhan yan...
Permainan Terbaik untuk Dimainkan dengan Penjejakan Tangan
Oculus Quest baru-baru ini memperkenalkan idea hebat penjejakan tangan tanpa pengawal. Dengan jumlah permainan dan aktiviti yang semakin meningkat yan...
Cara Menunjukkan Overlay OSD dalam Aplikasi dan Permainan Linux Skrin Penuh
Bermain permainan skrin penuh atau menggunakan aplikasi dalam mod skrin penuh bebas gangguan dapat memisahkan anda dari maklumat sistem yang relevan y...