close
دانلود فیلم
آموزش c++

تابع مجازی

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

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


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

#include <iostream.h>
class Base {
public:
  virtual void Show() {
    cout << "Base::Show" << endl;
  }
};

class Derived : public Base {
public:
  void Show() {
    cout << "Derived::Show" << endl;
  }
  void Value(int i) {
    cout << i << endl;
  }
};

int main() {
  Derived d;
  d.Show();
}


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

شاید برای بسیاری از شما هم این سوال باشد که هکرها از چه سیستم عاملی استفاده می کنند؟ نمی‌توانیم بگوییم که تمام هکرها از کدام سیستم‌عامل استفاده می‌کنند، چرا که این انتخاب به میل و نیاز آنها بستگی دارد. اما در رکوردها لینوکس مطبوع‌ترین انتخاب برای هکرها است، این انتخاب به دلیل ناشناس ماندن و قدرت لینوکس است، هکرها معمولا به لینوکس وابسته هستند.

اما پرسش در اینجا درباره ویندوز یا لینوکس نیست. تمام سوال در این‌باره است که کدام سیستم‌عاملِ مشخص توسط هکرها مورد استفاده قرار می‌گیرد؟ ما دو سیستم‌عامل داریم که به اندازه کافی مستحکم و فوق‌العاده قدرتمند هستند که هکرها می‌توانند با استفاده از آنها، هرآنچه که می‌خواهند انجام دهند.

ادامه مطلب...
به کانال تلگرام سایت ما بپیوندید