Adalah fungsi yang mendukung adanya polymorphic function. artinya fungsi tersebut dapat didefinisikan ulang pada kelas - kelas turunannya. Fungsi ini biasanya terdapat pada kelas - kelas dasar. Walaupun demikian, kita juga dapat mendeklarasikan fungsi virtual pada kelas - kelas turunan yang akan dijadikan sebagai kelas dasar bagi kelas - kelas lainnya. Dalam C++, untuk mendefinisikan fungsi sebagai fungsi virtual adalah dengan menggunakan kata kunci Virtual yaitu dengan menempatkan di depan pendeklarasian fungsi tersebut .
Pendefinisian fungsi virtual yang terdapat pada kelas dasar biasanya tidak begitu berarti. Artinya kode - kode yang terdapat di dalamnya masih bersifat general. Selanjutnya setiap kelas turunan akan mendefinisikan ulang fungsi virtual itu dengan mengisikan perintah - perintah yang sudah spesifik sesuai dengan kebutuhan dari kelas turunan tersebut.
Contoh Program :
//fungsi virtual.cpp
include
using namespace std;
class Manusia
{
char * nama;
int tinggi;
public :
void setNama(char* N)
{
nama = N;
}
void setTinggi(int T)
{
tinggi = T;
}
char* getNama()
{return nama;}
int getTinggi()
{return tinggi;}
//membuat fungsi virtual
virtual void Makan()
{cout << "Makan makan" << endl;}
virtual void Minum()
{cout << "Minum minum" << endl;}
};
class Mahasiswa : Manusia
{
char* universitas;
char* jurusan;
public :
void setUniversitas(char* U)
{
universitas = U;
}
void setJurusan(char* J)
{
jurusan = J;
}
char* getUniversitas()
{return universitas;}
char* getJurusan()
{return jurusan;}
//melakukan override
void Makan()
{
cout << "Makan Makanan";
}
void Minum()
{
cout << "Minum Minuman";
}
};
//fungsi utama
int main()
{
//melakukan inisiasi
Manusia panggilManusia;
Mahasiswa panggilMahasiswa;
//memanggil fungsi Makan dari masing2 kelas
panggilManusia.Makan();
panggilMahasiswa.Makan();
//memanggil fungsi Minum dari masing2 kelas
panggilManusia.Minum();
panggilMahasiswa.Minum();
System("pause");
return 0;
}
demikianlah mudah2an bermanfaat.. selamat mencoba ^^..
infonya sangat bermanfaat bagi ane
ReplyDeletesolder uap