Virtual fonksiyon, Türkçe anlamıyla sanal işlev, türetilmiş sınıflarda yeniden tanımlamayı umduğunuz temel sınıftaki üye işlevdir.
Sanal Fonksiyona neden ihtiyaç duyulur ?
Sanal
fonksiyonları çok biçimli programlama tekniği (polymorphism) ile kullanılır.
Bir sınıfın fonksiyonunun miras alan diğer sınıflar tarafından kullanılmasını
sağlamak için virtual anahtar kelimesiyle tanımlarız. Bunun nedenini bir örnek
ile açıklayayım. Diyelim ki bir dikdörtgen sınıfımız var. Bu sınıf için alan
hesaplayabiliriz, çizim yaptırabiliriz , çevre hesaplayabiliriz. Diğer bir
sınıf olan kare ise dikdörtgen’den miras alsın. Kare içinde aynı fonksiyonları
kullanabiliriz değil mi ? Bunu yapabilmemiz için dikdörtgen sınıfımızdaki
fonksiyonlarımızı virtual anahtar kelimesiyle deklare etmemiz gerekir yani
prototiplerini virtual ön eki ile yazarız.
Farklı bir örneğin koduyla virtual fonksiyonun kullanımını görelim.