Fungsi Overriding di C++ Dijelaskan
Diterbitkan: 2022-11-09Apa Itu Fungsi?
Fungsi adalah bagian yang termasuk dalam kode untuk menjalankan tugas yang ditentukan dalam suatu program. Penting untuk memiliki pengetahuan langsung tentang pewarisan untuk mempelajari fungsi yang mengesampingkan implementasi pewarisan adalah mandat untuk fungsi ini. Fungsi C++ adalah kumpulan pernyataan yang disatukan untuk menjalankan tugas. Semua program memiliki fungsi main(), dan program tertentu memiliki fungsi tambahan. Deklarasi fungsi mengirimkan nama fungsi, tipe pengembalian, dan parameter ke kompiler untuk menentukan badan fungsi dengan definisi fungsi. Fungsi dapat berupa prosedur, metode, atau subrutin, dan semua fungsi C++ terdiri dari header dan badan.
Sintaks fungsi C++: -
return_type function_name(daftar parameter) {
fungsi tubuh
}
Komponen :-
- Return Type- Ini menunjukkan tipe nilai pengembalian fungsi.
- Nama Fungsi- Ini mewakili nama fungsi yang membentuk tanda tangan fungsi dan daftar parameter.
- Parameter- Ini adalah tempat untuk nilai yang dikembalikan oleh fungsi. Ketika suatu fungsi dipanggil, nilai yang diteruskan ke parameter dikenal sebagai parameter aktual.
- Badan Fungsi- Badan fungsi terdiri dari daftar pernyataan yang mendefinisikan tugas fungsi.
Cara Memanggil Fungsi
Suatu fungsi harus dipanggil atau dipanggil sebelum digunakan, setelah itu kontrol ditransfer ke fungsi tersebut untuk melakukan tugas yang diperlukan. Pernyataan kembali memberikan kembali kontrol ke program utama setelah ini. Parameter dan nama fungsi harus lulus untuk memanggil fungsi. Argumen dapat diteruskan ke suatu fungsi dengan berbagai cara saat memanggilnya. Jenis panggilan adalah sebagai berikut: -
- Panggilan berdasarkan Nilai
- Panggilan dengan Referensi
- Panggilan dengan Pointer
Pelajari Kursus Pengembangan Perangkat Lunak online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.
Mengganti Fungsi di C++
Override C++ adalah ide di mana fungsi yang diberi nama yang sama didefinisikan. Fungsi kelas dasar dalam penggantian didefinisikan ulang dalam kelas turunan, yang menimpa fungsi kelas dasar. Menerapkan polimorfisme run-time juga dapat didefinisikan sebagai fungsi overriding. Di sini, run-time program menimpa fungsi.
Fungsi overriding memungkinkan pemrogram untuk menggunakan fungsi di kelas anak yang ditemukan di kelas induknya. Akibatnya, kelas anak mewarisi setiap anggota data dan fungsi anggota yang ditemukan di kelas induk. Untuk mengganti fungsionalitas kelas anak apa pun, Anda harus mengimplementasikan penggantian fungsi. Pengabaian fungsi mengacu pada pembuatan versi baru dari fungsi kelas induk di dalam kelas anak.
Sintaks untuk Mengimplementasikan Fungsi Overriding di C++
Ketika fungsi yang sama yang didefinisikan di kelas dasar dan kelas turunan dipanggil menggunakan objek dari kelas turunan, itu mengeksekusi fungsi kelas turunan. Ini adalah fungsi utama dalam C++.
Di bawah ini adalah sintaks yang paling banyak digunakan untuk implementasi fungsi overriding di C++:
// Program C++ untuk mendemonstrasikan penggantian fungsi
#sertakan <iostream>
menggunakan namespace std;
kelas Dasar {
publik:
batal cetak() {
cout<<"Fungsi Dasar"<<endl;
}
};
kelas Berasal : basis publik {
publik:
batal cetak() {
cout << “Fungsi Turunan” << endl;
}
};
int utama() {
Turunan turunan1;
turunan1.print();
kembali 0;
}
Keluaran
Fungsi turunan
Ini mendefinisikan kembali fungsi kelas dasar dalam kelas turunan. Oleh karena itu, tipe-kembali, parameter_fungsi, dan nama_fungsi harus sama untuk mencapai penggantian fungsi.
Kursus & Artikel Populer tentang Rekayasa Perangkat Lunak
Program Populer | |||
Program PG Eksekutif dalam Pengembangan Perangkat Lunak - IIIT B | Program Sertifikat Blockchain - PURDUE | Program Sertifikat Keamanan Siber - PURDUE | MSC dalam Ilmu Komputer - IIIT B |
Artikel Populer Lainnya | |||
Gaji Cloud Engineer di AS 2021-22 | Gaji Arsitek Solusi AWS di AS | Gaji Pengembang Backend di AS | Gaji Pengembang Front End di AS |
Gaji pengembang web di AS | Pertanyaan Wawancara Scrum Master pada tahun 2022 | Bagaimana Memulai Karir di Keamanan Cyber pada tahun 2022? | Pilihan Karir di AS untuk Mahasiswa Teknik |
Bagaimana Fungsi Overriding Bekerja di C++
OOP harus mengizinkan kelas turunan untuk mewarisi fitur kelas induk. Pengabaian fungsi memungkinkan pemrogram untuk mengesampingkan fungsionalitas apa pun di dalam kelas di kelas turunan tertentu. Ini sangat berguna ketika kelas anak membutuhkan varian fungsionalitasnya.
Di bawah ini adalah contoh sederhana dari penggantian fungsi di C++ untuk pemahaman Anda yang lebih baik:
#sertakan <iostream>
menggunakan namespace std;
kelas induk_kelas
{
publik:
cetak kosong virtual()
{
cout << “\nIni adalah metode print()”
” dari Kelas Dasar”;
}
};
class turunan_class : public parent_class
{
publik:
// Fungsi Overriding – definisi baru dari
// metode cetak kelas dasar
batal cetak()
{
cout << “\nIni adalah metode print()”
” dari Kelas Turunan”;
}
};
// Kode driver
int utama()
{
turunan_kelas obj;
obj.print();
}
Akses Fungsi yang Ditimpa di C++
Operator resolusi lingkup digunakan untuk mengakses fungsi yang diganti dari kelas dasar di C++. Fungsi yang ditimpa juga dapat diakses dengan menggunakan pointer kelas dasar untuk menunjuk ke objek dari kelas turunan dan kemudian memanggil fungsi dari pointer.
// Program C++ untuk mengakses fungsi yang diganti
// di main() menggunakan operator resolusi lingkup ::
#sertakan <iostream>
menggunakan namespace std;
kelas Dasar {
publik:
batal cetak() {
cout<<"Fungsi Dasar"<<endl;
}
};
kelas Berasal : basis publik {
publik:
batal cetak() {
cout << “Fungsi Turunan” << endl;
}
};
int utama() {
Turunan turunan1, turunan2;
turunan1.print();
// mengakses fungsi print() dari kelas Base
turunan2.Base::print();
kembali 0;
}
Keluaran
Fungsi turunan
Fungsi Dasar
Pernyataan dalam sintaks; turunan2.Base::print(); memberikan akses ke fungsi print() dari kelas Base.
Fungsi Panggilan Ditimpa Dari Kelas Turunan
Anda dapat menggunakan pewarisan untuk mengubah perilaku suatu fungsi. Namun, terkadang, Anda tidak perlu mengubah atau mengganti fungsionalitas kelas dasar/induk. Sebaliknya, lebih banyak fungsi harus ditambahkan.
Di bawah ini adalah contoh penggunaan fungsi panggilan yang diganti dari kelas turunan.
// Program C++ untuk memanggil fungsi yang diganti
// dari fungsi anggota dari kelas turunan
#sertakan <iostream>
menggunakan namespace std;
kelas Dasar {
publik:
batal cetak() {
cout<<"Fungsi Dasar"<<endl;
}
};
kelas Berasal : basis publik {
publik:
batal cetak() {
cout << “Fungsi Turunan” << endl;
// panggil fungsi yang diganti
Dasar::cetak();
}
};
int utama() {
Turunan turunan1;
turunan1.print();
kembali 0;
}
Keluaran
Fungsi turunan
Fungsi Dasar
Dalam program ini, fungsi yang ditimpa telah dipanggil di dalam kelas Derived.
kelas Berasal : basis publik {
publik:
batal cetak() {
cout << “Fungsi Turunan” << endl;
Dasar::cetak();
}
};
Kode Base::print();, memanggil fungsi yang diganti dalam kelas Derived.
Fungsi Overloading vs. Fungsi Overriding
Anda dapat mencapai fungsi yang berlebihan pada waktu kompilasi, biasanya dilakukan dalam kelas turunan dan kelas dasar. Ini memberikan lebih dari satu definisi fungsi dengan mengubah tanda tangan dari setiap fungsi, seperti tipe data atau tipe pengembalian parameter.
Fungsi mengesampingkan, di sisi lain, dapat dicapai pada saat run-time. Kelas dasar dalam override didefinisikan ulang di kelas turunan dengan parameter yang sama dan tipe pengembalian yang sama. Mari kita cari tahu fitur apa lagi yang membuat kedua fungsi ini berbeda.
Utama | kelebihan beban | |
Warisan | Membutuhkan pewarisan kelas | Tidak memerlukan pewarisan kelas |
Tanda Tangan Fungsi | Berbeda dalam tanda tangan baik dalam jenis atau jumlah parameter. | Tanda tangan fungsi tetap sama |
Lingkup Fungsi | Fungsi berbeda dalam ruang lingkup | Memiliki lingkup yang sama |
Perilaku Fungsi | Diperlukan ketika fungsi kelas turunan bekerja secara berbeda atau dengan fungsionalitas tambahan daripada fungsi kelas dasar. | Diperlukan ketika fungsi dengan nama yang sama memiliki perilaku yang berbeda berdasarkan parameter yang diberikan. |
Kesimpulan
Penggantian fungsi dalam C++ membantu menghemat ruang memori dan menjaga keterbacaan dan konsistensi kode apa pun. Ini juga membantu dalam membuat kode dapat digunakan kembali dengan mudah. Tak perlu dikatakan, pengetahuan tentang fungsi overriding adalah keterampilan penting untuk dimiliki jika Anda melihat masa depan untuk diri sendiri dalam pemrograman.
Jika Anda ingin bergabung dengan kursus yang andal dan premium untuk memulai karir Anda di bidang ini, Anda dapat mendaftar untuk Master of Science di bidang Ilmu Komputer upGrad di upGrad. Beberapa sorotan utama dari program ini adalah sebagai berikut: -
- Pelajari Stack MERN, Layanan Mikro, JavaScript, dll.
- Pembelajaran yang sehat di Cloud Labs
- Bereksperimenlah dengan alat yang digunakan di Netflix, LinkedIn, Facebook, dll.
- Dapatkan ahli dalam 10+ alat dan bahasa pemrograman
- Dukungan siswa 24/7
Bagaimana penggantian fungsi terjadi?
Fungsi override C++ terjadi melalui pewarisan, yaitu ketika satu kelas mewarisi kelas lain. Ketika kelas turunan dan kelas dasar memiliki fungsi anggota yang memiliki tipe pengembalian, nama, dan daftar argumen yang sama, itu disebut fungsi overriding.
Apa perbedaan antara fungsi overloading dan fungsi overriding di C++?
Fungsi Overriding terjadi ketika fungsi memiliki prototipe yang sama di kelas dasar dan turunan. Fungsi Overloading dilakukan ketika lebih dari satu fungsi dengan nama yang sama ada di satu kelas.
Apa saja fitur fungsi overloading di C++?
Fungsi overloading di C++ terutama digunakan untuk meningkatkan keterbacaan kode. Pemrogram menggunakannya sehingga mereka tidak perlu mengingat banyak nama fungsi. Kelas dengan banyak fungsi, parameter berbeda, dan nama yang sama disebut Overloaded.