PDA

View Full Version : سوال: راهنمایی در مورد عملگری مثل <- در شکل زیر؟؟؟



motherboard
دوشنبه 05 خرداد 1393, 18:55 عصر
سلام.خسته نباشید.می خواستم بدونم منظور از اضافه بار در عکس زیر چیه؟همچنین منظور از شرکت پذیری؟در مورد تفاوت عملگر های انتخاب مستقیم عضو و انتخاب غیر مستقیم عضو؟ با تشکر
119531

کامبیز اسدزاده
دوشنبه 05 خرداد 1393, 19:32 عصر
سلام.خسته نباشید.می خواستم بدونم منظور از اضافه بار در عکس زیر چیه؟همچنین منظور از شرکت پذیری؟در مورد تفاوت عملگر های انتخاب مستقیم عضو و انتخاب غیر مستقیم عضو؟ با تشکر
119531

ستون اضافه بار در کل نمایانگر این هستش که عملگر قابل بارگذاری اضافی میباشد یا خیر !
اگر عملگر شما این قابلیت رو داشته باشد یعنی قابلیت بار گذاری اضافی را دارد.

کامبیز اسدزاده
دوشنبه 05 خرداد 1393, 19:46 عصر
اینم خدمت شما اصلاحات لازم صورت گرفت همراه با توضیحات و مختصری از مثال ها : http://barnamenevis.org/showthread.php?438351-%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D9%88-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-C-%D8%A8%D9%87-%D8%B5%D9%88%D8%B1%D8%AA-%DA%AF%D8%A7%D9%85-%D8%A8%D9%87-%DA%AF%D8%A7%D9%85&p=2028874&viewfull=1#post2028874

motherboard
دوشنبه 05 خرداد 1393, 19:48 عصر
ممنون از شما.ولی تمایل داشتم توضیح هم بدید.(خیلی خلاصه بود)جوابی که دادید یک جورایی تکرار سوال من شد.چون به هر حال منی که سوال می کنم هر چند برای شما ساده به نظر بیاد ولی برای من این سوال در حد المپیاست:لبخند:.اگر ممکنه در مورد اون عملگر هم توضیح بدید.

کامبیز اسدزاده
دوشنبه 05 خرداد 1393, 21:09 عصر
ممنون از شما.ولی تمایل داشتم توضیح هم بدید.(خیلی خلاصه بود)جوابی که دادید یک جورایی تکرار سوال من شد.چون به هر حال منی که سوال می کنم هر چند برای شما ساده به نظر بیاد ولی برای من این سوال در حد المپیاست:لبخند:.اگر ممکنه در مورد اون عملگر هم توضیح بدید.

دلیل اینکه زیاد توضیحات نمیدم این هستش که در آموزش C++ تاپیکی که زدم لیست بندی کردم که در فصل نهم در رابطه با این موضوع بحث خواهیم کرد.
ولی به صورت خلاصه بگم که در C++ وقتی شما کلاسی رو تعریف میکنید در حقیقت یک نوع جدیدی رو دارین خودتون خلق میکنید و در نهایت برای اینکه عملگر هایی داشته باشید که توسط کاربر قابل اجرا باشند باید در این حالت بارگزاری اضافی شوند که درستش بهتره بگیم Operator Overloading شوند !یعنی یه جورایی استفاده کردن از عملگر هایی مانند = / + و ... در خود کلاس.به این آدرس ها مراجعه کنید مثالی هم زده :

http://en.wikipedia.org/wiki/Operator_overloading
http://www.cprogramming.com/tutorial/operator_overloading.html

rahnema1
دوشنبه 05 خرداد 1393, 23:36 عصر
همون طور که دوستمون اشاره کردن بعضی از این مباحث در درسهای جلوتر از سی پلاس پلاس آموزش داده میشه. که باید به ترتیب مباحث را دنبال کنید تا به اونجا برسید. overload کردن عملگر یعنی دوباره بتونیم یک عملگر را تعریف کنیم که بتونه روی انواع داده جدید که تعریف می کنیم عمل کنه مثلا عملگر + روی اعداد باعث میشه با هم جمع بشن اما اگه ما یک کلاس تعریف کنیم و دو تا آبجکت از اون کلاس درست کنیم و حالا بین اون دو تا آبجکت از عملگر + استفاده کنیم چه نتیجه ای میده؟ نتیجه خطا میده چون این عملگر برای این نوع دادع تعریف نشده. بنابراین با overload کردن عملگر می تونیم دامنه عملکرد اون را به انواع داده جدید ، اون طوری که ما می خواهیم افزایش بدیم
شرکت پذیری که یک بحث بدیهی به نظر می رسه در مورد گروه شدن عبارت هست، موقعی که در اون عبارت چند تا عملگر با تقدم یکسان استفاده بشن. مثلا عبارت زیر را در نظر بگیرید
a= a + 23 + b - 5
با توجه به جدول تقدم عملگر جمع و تفریق یکسانه و همچنین عملگر ها از چپ به راست گروه میشن به این صورت:

a= (a+23)+...
a=((a+23)+b)+...
a=(((a+23)+b)-5)

یعنی عبارت اولی اگه بخواد توی پرانتز قرار بگیره از چپ به راست گروه میشه

انتخاب مستقیم و غیر مستقیم هم در مورد دسترسی به اعضای یک شیء به کار میره
که در اون قسمت مطالعه کنید