Mengganti Fungsi C++

C Function Overriding



Pada artikel ini, kita akan membahas fungsi overriding dalam bahasa pemrograman C++. C++ mendukung polimorfisme runtime.

Dalam penggantian fungsi, kelas anak mendefinisikan ulang fungsi yang sudah didefinisikan di kelas induknya.







Ini memungkinkan programmer untuk menyediakan fungsionalitas khusus kelas turunan (meskipun didefinisikan di kelas dasar).



Sekarang, kita akan melihat beberapa contoh dan memahami konsep fungsi overriding di C++.



Contoh 1

Saya telah mendefinisikan dua kelas dalam kode contoh di bawah ini – kelas dasar dan kelas turunan. Kelas dasar memiliki fungsi anggota, yaitu disp(). Derived_Class diwarisi dari Base_Class. Fungsi disp() hadir di Base_Class dan kemudian didefinisikan ulang di Derived_Class.





Dalam fungsi main(), objek Derived_Class, yaitu, d, dibuat. Kemudian, kita memanggil fungsi disp() pada objek kelas turunan, sehingga fungsi di kelas turunan akan dipanggil. Versi kelas dasar diabaikan di sini. Anda dapat melihat di bawah output sebagai fungsi – disp() di kelas turunan.

#termasuk

menggunakan namespace std;

//kelas dasar
kelas Base_Class
{
publik:
ruang kosongfaedah()
{
biaya<< 'disp() fungsi di kelas dasar.' <<akhir;
}

};

//kelas turunan
Kelas Turunan_Kelas:Base_Class publik
{
publik:
ruang kosongfaedah()
{
biaya<< 'disp() fungsi di kelas turunan' <<akhir;
}
};

ke dalamutama()
{
Turunan_Kelas d;
D.faedah(); //disp() fungsi pada objek kelas turunan
kembali 0;
}



Contoh-2

Dalam contoh ini, kita akan melihat bagaimana secara sengaja memanggil versi kelas dasar dari fungsi melalui objek kelas turunan. Dalam definisi fungsi kelas turunan, kita menggunakan operator resolusi lingkup [::] untuk memanggil versi kelas dasar dari fungsi tersebut.

#termasuk

menggunakan namespace std;

kelas Base_Class
{
publik:
ruang kosongfaedah()
{
biaya<< 'disp() fungsi di kelas dasar.' <<akhir;
}

};

Kelas Turunan_Kelas:Base_Class publik
{
publik:
ruang kosongfaedah()
{
Kelas_Basis::faedah(); //Panggil versi kelas dasar dari disp()
}
};

ke dalamutama()
{
Turunan_Kelas d;
D.faedah();
kembali 0;
}

Contoh-3

Ini adalah contoh lain dari fungsi overriding. Dalam contoh ini, kami telah membuat kelas induk – Hewan dan dua kelas turunan – Bebek dan Anjing. Kelas dasar, yaitu kelas Hewan, memiliki fungsi anggota sound().

Di kelas turunan/kelas anak, yaitu Dog, kita telah mendefinisikan ulang fungsi yang sama, yaitu sound(), untuk mengganti definisi kelas dasarnya. Demikian pula, di kelas turunan lainnya, yaitu, Bebek, kami telah mendefinisikan ulang fungsi yang sama, yaitu, sound().

Dalam fungsi main(), kita telah membuat objek anjing dari Anjing dan bebek dari Bebek. Jadi, sekarang ketika kita memanggil fungsi sound() untuk anjing dan bebek, versi kelas turunan dari fungsi sound() akan dipanggil. Anda dapat melihat output dari program seperti yang ditunjukkan di bawah ini. Jadi, dengan bantuan fungsi overriding, kita dapat memanggil fungsi khusus kelas turunan.

#termasuk

menggunakan namespace std;

kelas Hewan
{
publik:
ruang kosongsuara()
{
biaya<< 'Suara binatang!' <<akhir;
}

};

//Kelas turunan – Kelas anjing
anjing kelas:hewan publik
{
publik:
ruang kosongsuara()
{
biaya<< 'Suara anjing - menggonggong.' <<akhir;
}
};

//Kelas turunan – Kelas bebek
kelas bebek:hewan publik
{
publik:
ruang kosongsuara()
{
biaya<< 'Suara bebek -- dukun.' <<akhir;
}
};


ke dalamutama()
{
Anjing anjing;
bebek bebek;

anjing.suara(); //suara() anjing
bebek.suara(); //suara() bebek

kembali 0;
}

Kesimpulan

Pada artikel ini, saya telah menjelaskan fungsi overriding di C++ . Bahasa C++ mendukung polimorfisme runtime. Penggantian fungsi membantu mencapai polimorfisme waktu proses di C++. Artikel ini membahas konsep fungsi overriding dan bagaimana mencapai polimorfisme runtime menggunakan fungsi overriding.