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

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

فرستادن شیء به تابع

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

برای فرستادن شیء به یک تابع، از چی استفاده کنم؟ ارجاع؟ اشاره‌گر؟ یا خود شیء؟
و اگه شرایط خاصی برای استفاده برای هرکدومشون هست اونها چین؟

پرسیده شده چهارشنبه ۱۴ فروردین ۱۳۹۲ در C++ توسط CPP_Crawler4  

2 پاسخ

+1 امتیاز

اگه قرار نیست تغییر توی شی‌ء داده بشه بهتر از همه ارجاع یا اشاره‌گر ثابت هست. خود شی‌ء رو فرستادن ایده‌ی خوبی نیست به خاطر سربار اجرایی که به برنامه تحمیل می‌کنه.
در صورت استفاده از اشاره‌گر باید مواظب بود که ثابت نبودن پارامتر ورودی دردسرهای زیادی درست می‌کنه. مثل دستیابی ناخواسته به آدرس‌هایی از حافظه.

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

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

اگه قرار نیست تغییر کنه با ارجاع یا اشاره‌گر ثابت. تاکیدم روی این بود. خود شی در برنامه‌نویسی معمولاً در مورد ارجاع استفاده می‌شه. بله در صورت فراخوانی با مقدار، یک کپی از object ارسال می‌شه.

+1 امتیاز

آرگومان رو بوسیله‌ی ارجاع ثابت بفرست به جز وقتی که:
1- قراره در تابع تغییر کنند و اون تغییر قراره به بیرون تابع برگرده که در این صورت بصورت ارجاع غیر ثابت فرستاده میشه
2- تابع لازمه که بدون پارامتر هم قابل فراخوانی باشه. در این صورت آرگومان رو توسط اشاره‌گر میفرستین که اینجوری کاربر میتونه NULL/0/nullptr هم بفرسته.
3- از داده‌های از پیش ساخته شده باشند که در این صورت میتونن به صورت کپی فرستاده بشن.
4- قراره در داخل تابع عوض بشن ولی اون تغییرات قرار نیست به بیرون تابع برگردونده بشه. در این صورت میتونین بوسیله کپی اونها رو بفرستین.

پاسخ داده شده شنبه ۱۷ فروردین ۱۳۹۲ توسط CPP_Crawler5