تابعی که در کد کلاس تعریف میشه (یعنی به صورت تابع عضو) فقط برای مدلسازی اونطور نوشته میشه. بعد از کامپایل فرقی بین تابعی که به صورت عضو هست با تابعی که به صورت غیرعضو هست نیست!
تنها مورد اینه که برای توابع عضو یک اشارهگر به شی فراخواننده ارسال میشه که جایگزین مقدار this
در کد تابع میشه. یعنی دو کد زیر معادل هستن
class C
{
public:
int x;
void f(){ this->x = 0; }
};
و
class C
{
public:
int x;
};
void f(C &obj){ obj.x = 0; }
هیچ پژوهش انسانی نمیتواند ادعای علمی بودن داشته باشد، مگر اینکه از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)