۱۲ مطلب با موضوع «عمل گر ها» ثبت شده است

پاسخ تمرین سری قبل

سلام!

پاسخ تمرین سری قبل را می توانید در کد زیر مشاهده نمایید.

۰ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

سربارگذاری عمل گر ها (operator overloading) - قسمت ششم

سلام!

این جلسه می خواهیم طرز سربارگذاری عمل گر های پرانتز و قلّاب (کروشه) را یاد بگیریم. این دو عمل گر خیلی به Point ربط ندارند اما ما آن ها را برای Point پیاده سازی می کنیم تا یک مثال هم زده باشیم.

نکته ای که باید قبل از هر چیزی یاد بگیرید، این است که عمل گر پرانتز می تواند تعداد نامحدودی ورودی داشته باشد (مثل تابع) اما عمل گر قلّاب تنها یک ورودی می تواند بگیرد.

حالا می خواهیم ابتدا عمل گر قلّاب را سربارگذاری کنیم. Prototype مربوط به آن به صورت زیر است؛

OUTPUT_TYPE operator[](Arguments);
۰ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

پاسخ تمرین سری قبل

سلام!

در کد زیر می توانید پاسخ تمرین جلسه ی قبل را مشاهده کنید.

۰ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

سربارگذاری عمل گر ها (operator overloading) - قسمت پنجم

سلام

این جلسه می خواهیم با چند عمل گر دیگر آشنا شویم. به عمل گر هایی که در ادامه مشاهده می کنید، عمل گر های بیتی (Bitwise operator) می گویند. یعنی با اعداد به صورت دودویی کار دارند.

اول از همه می خواهیم با عمل گر های shift left و shift right آشنا شویم. این دو عمل گر علاوه بر این که به طور معمول برای cin و cout استفاده می شوند، کاربردهای دیگری هم دارند. عمل گر shift right دو ورودی می گیرد که هر دو عدد هستند؛ این عمل گر عدد دودویی متغیر سمت چپ خود را می گیرد و سپس تمامی ارقام آن را به اندازه ی رقم سمت راست خود به سمت راست حرکت می دهد. مثلا اگر در برنامه ی خود بنویسیم

cout << (6 >> 1) << endl;

خروجی برنامه ی ما ۳ خواهد بود.

۰ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

پاسخ تمرین سری قبل

سلام!

در کد زیر می توانید پاسخ تمرین سری قبل را مشاهده کنید.

۰ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

سربارگذاری عمل گر ها (operator overloading) - قسمت چهارم

سلام!

این جلسه قرار است تمامی عمل گر هایی را که تا کنون طرز سربارگذاری آن ها را یاد گرفتیم، در خود class تعریف کنیم نه در بیرون آن. این نوع تعریف درست تر هم به نظر می آید چون عمل گر ها خود عضوی از class هستند پس باید درون آن تعریف شوند.

وقتی که یک عمل گر را درون بدنه ی class تغییر می دهید، ورودی اوّل آن به صورت پیش فرض یک object از نوع همان class است که درون آن هستیم. مثلا فرض کنید می خواهید عمل گر += را برای Point (که کد آن را طی جلسات پیش تا جای خوبی پیش بردیم) تغییر دهید. برای انجام این کار در درون کلاس باید بنویسید

void operator+=(const Point&);
۰ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

پاسخ تمرین سری قبل

سلام!

جواب تمرین قبلی را می توانید در کد زیر مشاهده کنید.

۰ نظر موافقین ۰ مخالفین ۰
روزبه صیادی