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

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

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

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

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

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