Perbedaan Override dengan Overload pada Pemrograman C++. Pada dasarnya override dengan overload memiliki perbedaan masing masing, keduanya tidaklah sama. Namun keduanya terdapatlah kemiripan antara override dengan overload. Namun Anda janganlah bingung karena akan kita bahas dalam postingan kali ini.
Pada proses override kita tidak dapat mengubah parameter dari fungsi (yang di definisikan sebagai fungsi virtual) yang terdapat pada kelas induk, baik itu tipe data ataupun jumlah dari parameter tersebut. Sedangkan overload adalah pembuatan fungsi fungsi tersebut berbeda dengan demikian, berarti bisa di simpulkan bahwa override bukanlah overload.
Setelah kita membahas mengenai perbedaan antara override dengan overload maka kita akan membahas mengenai Fungsi Virtual Murni atau bisa juga di sebut dengan nama Pure Virtual Function. Sebelumnya sudah ada yang tahu belum mengenai fungsi virtual murni ini? Jika belum tahu maka kita akan bahas penjelasannya.
A. Fungsi Virtual Murni
adapun yang di maskud dari fungsi virtual murin adalah fungsi yang murni tidak memiliki definisi sama sekali, artinya fungsi tersebut baru didefinisikan pada kelas turunanya. Dalam C++, untuk mendefinisikan fungsi sebagai fungsi virtual murni adalah dengan cara mengisikan nilai 0 ke dalam fungsi tersebut. Berikut ini bentuk umum pembuatan sebuah fungsi virtual murni.
virtual tipe_data nama_fungsi (parameter1, parameter2, . . .) =0;
B. Virtual Dectructor
C++ merupakan bahasa yang mendukung adanya virtual destructor pada sebuah kelas. Hal ini bertujuan untuk menghindari terjadinya memoery leak. Apabila kita mempunyai sebuah pointer yang bertipe kelas induk, dan pointer tersebut ditunjukkan ke kelas turunan, maka pada saat kita menghapus pointer tersebut, yang akan terhapus dari memori hanyalah objek induknya saja, sedangkan objek turunannya sebenarnya masih terdapat di dalam memori.
C KELAS ABSTRAK
Kelas abstrak adalah sebuah kelas yang mempunyai fungsi virtual murni di dalamnya. Maka dari itu kita juga tidak di izinkan untuk melakukan instalasi dari kelas abstrak. Apabila kurang jelas mengenai kelas abstrak maka berikut ini adalah contoh sebuah programnya.
#include <iostream>
using namespace std;
class KARYAWAN {
public:
virtual void Bekerja() = 0;
};
class PROGRAMMER: public KARYAWAN {
public:
void Bekerja () {
cout<<"Bekerja dengan cara membuat sebuah program";
cout<<endl;
}
};
class GURU: public KARYAWAN {
public:
void Bekerja () {
cout<<"Bekerja dengan cara mengajar";
cout<<endl;
}
};
int main () {
PROGRAMMER B;
GURU C;
return 0;
}
Itulah sedikit penjelasan mengenai perbedaan override dengan overload, pengertian tentang fungsi virtual murni, virtual dectructor dan kelas abstrak. Semoga postingan ini bisa bermanfaat bagi Anda.