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

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

سربارگذاری عملگر ++

+1 امتیاز
104 نمایش

چجوری میشه عملگر ++ رو سربارگذاری کنم طوری که دو جور متفاوت برای a++ و ++a داشته باشم؟

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

1 پاسخ

+1 امتیاز

تفاوت عمده‌ی عملگر پیشوندی و پسوندی در نوع بازگشتیشونه.
اصولا نوع پیشوندی یه رفرنس بر می‌گردونه ولی نوع پسوندی رفرنس نمی‌ده.
فرض کنید یک کلاس به اسم node تعریف کرده باشیم.
نوع پیشوندی چنین حالتی داره:

node& operator ++()

در حالی که نوع پسوندی این شکلیه:

node operator ++(int alaki)

پس طبیعیه که یه تفاوت واضح تو سربارگذاری این دو تا وجود داره.

یه توضیح خیلی خوب از علت این قضایا رو می‌تونید اینجا ببینید:LearnCPP

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

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