اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

توابع در کلاس چطور به کد ماشین تبدیل می‌شن؟

+2 امتیاز
78 نمایش

وقتی یه کلاس به شکل زیر می‌نویسم

class C
{
  private:
    int x;
  public:
    void f(){ ... }
};

تابع f چطور پیاده‌سازی می‌شه در کد ماشین؟

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پرسیده شده دوشنبه ۲۱ مرداد ۱۳۹۲ در C++ توسط prodo  

1 پاسخ

0 امتیاز

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

تنها مورد اینه که برای توابع عضو یک اشاره‌گر به شی فراخواننده ارسال می‌شه که جایگزین مقدار this در کد تابع می‌شه. یعنی دو کد زیر معادل هستن

class C
{
  public:
    int x;
    void f(){ this->x = 0; }
};

و

class C
{
  public:
    int x;
};
void f(C &obj){ obj.x = 0; }
هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده دوشنبه ۲۱ مرداد ۱۳۹۲ توسط prodo