View Full Version : سوال: عملگر مجدد
mohammad1993
دوشنبه 23 مرداد 1391, 23:59 عصر
سلام کسی می دونه که تعریف مجدد عملگرها در C++ چیه؟چی کار باید کرد؟:ناراحت::ناراحت::ناراحت: :ناراحت:
hadi0x7c7
سه شنبه 24 مرداد 1391, 00:13 صبح
منظورتو نمی فهمم !
operator overloading ویژگی که زبان در اختیار ما میگذاره ! مثلا << واسه یه ADT l مثل Date طوری تعریف میکنیم که مثلا 2010:4:13 چاپ کنه. به صورت مستقیم !
the king
سه شنبه 24 مرداد 1391, 00:22 صبح
سلام کسی می دونه که تعریف مجدد عملگرها در C++ چیه؟چی کار باید کرد؟:ناراحت::ناراحت::ناراحت: :ناراحت:
وقتی یک نوع داده ای ساده مثل نوع داده عددی int دارید، کامپایلر می دونه که فرضا عملگر + چه کاری انجام میده، مقدار دو عبارت عددی رو با هم جمع می کنه
و نتیجه رو بصورت یک عدد دیگه بر می گردونه. اما وقتی خودتان یک کلاسی رو تعریف می کنید دیگه کامپایلر معنی عملگر + رو برای اشیاء این کلاس نمی دونه
و عملگر + برای این کلاس تعریف نشده است. شما با تعریف مجدد عملگر مشخص می کنید که فرضا عملگر + برای اشیاء این کلاس چه مفهومی داره و چه کاری
انجام میده و چه مقداری رو به عنوان نتیجه بر می گردونه.
فرضا برای کلاس Test عملگر + رو تعریف می کنید که چطور مقدار value دو شیء رو با هم جمع کنه و برگردونه :
Test operator+(const Test& a, const Test& b)
{
Test temp = a;
temp.value += b.value;
return temp;
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.