توابع مجازی

از ویکی‌پدیا، دانشنامهٔ آزاد

نسخه‌ای که می‌بینید، نسخهٔ فعلی این صفحه است که توسط Xqbot (بحث | مشارکت‌ها) در تاریخ ‏۲۰ آوریل ۲۰۲۰، ساعت ۱۱:۰۵ ویرایش شده است. آدرس فعلی این صفحه، پیوند دائمی این نسخه را نشان می‌دهد.

(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)

توابع مجازی (به انگلیسی: Virtual Functions) در ارث بری توابع کاربرد دارند که توضیح خواهم داد . در هنگام تعریف یک تابع در یک کلاس شما می توانید در ابتدای تعریف تابع کلمه کلیدی virtual رو برای مجازی کردن تابع استفاده کنید . مثال :

class A {
  .
  .
  .
public:
  virtual void setage(int age);
  .
  .
  .
}

در حالت عادی کاربرد توابع مجازی مانند توابع حقیقی است و هیچ فرقی ندارد، امااگر یک کلاس از این کلاس شما مشتق شود و تابعی با همین نام اما به صورت تابع غیرمجازی داشته باشد تابع متعلق به کلاس مشتق شده اجرا خواهد شد.

این ساختار در مواردی کاربرد دارد که شما تشخیص می‌دهید که ممکن است در بعضی شرایط نیاز باشد که تابعی که در کلاس پایه تعریف می‌کنید تغییر ساختار موقتی داشته باشد.