یک تابع مجازی (virtual function) به تابعی گفته می شود که در کلاس پایه اعلان شده است و مجددا توسط کلاس مشتق شده تعریف می شود. اگر کلاس پایه شامل تابع مجازی باشد کلاس مشتق شده می تواند این تابع مجازی را با توجه به نیازهای خود مجدد تعریف می کند.

برای ایجاد یک تابع مجازی کلمه کلیدی virtual در ابتدای اعلان تابع اضافه می شود.

مثال. تابع مجازی show در کلاس پایه دوباره در کلاس مشتق شده اعلان شده است.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

به نکات زیر دقت کنید:

به کلاسی که دارای یک تابع مجازی باشد کلاس پلی مورفیک (polymorphic) می گویند.
وقتی یک تابع مجازی در کلاس مشتق شده دوباره تعریف می شود نوشتن عبارت virtual در کلاس مجازی الزامی نیست.
اگر کلاس مشتق شده تابع مجازی کلاس پایه را مجددا تعریف نکند نسخه پیش فرض کلاس پایه استفاده می شود.
نمی توانید مقدار برگشتی یک تابع مجازی را در طی ابطال تغییر دهید. اگر نوع برگشتی تابع override با تابع مجازی متفاوت باشد نوع پارامترها هم باید تفاوت داشته باشند.