سلام!

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

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

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

OUTPUT_TYPE operator[](Arguments);

حالا ما مثلا می خواهیم از این عمل گر برای گرفتن مجموع x و y ضرب در ورودی استفاده کنیم. برای این کار Prototype تابع به صورت زیر درمی آید؛

double operator[](const int&);

ادامه ی سربارگذاری این عمل گر را به عهده ی خودتان می گذاریم. حال به سراغ عمل گر پرانتز می رویم. این کار توضیح خاصی ندارد. فرض کنید که از این عمل گر برای ضرب x در ورودی اوّل و ضرب y در ورودی دوم استفاده می کنیم. برای این کار Prototype به صورت زیر می شود؛

void operator()(const int&, const int&);

برای تمرین، این دو عمل گر را (با همین کاربردی که اشاره کردیم) برای Point پیاده سازی کنید.

موفق باشید!