۱۱ مطلب در اسفند ۱۳۹۳ ثبت شده است

سربارگذاری عمل گر ها (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;

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

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

متغیرهای static

سلام!

متغیرهای static، بعد از تمام شدن هر scope (همان طور که قبلا توضیح داده ام، به فضای بین هر { و } یک scope می گویند) حذف نمی شوند در حالی که متغیرهای معمولی حذف می شوند. این یعنی این که اگر بعدا دوباره به این scope برگردیم، مقدار آن همانی است که قبلا بوده است.

برای این که یک متغیر static تعریف کنیم،‌ باید به صورت زیر عمل کنیم.

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