operator overloading در C++
توضیحات:
در C++، اپراتورها نیز میتوانند برای کلاسها و ساختارها اورلود شوند، به این عملیات operator overloading گفته میشود. با استفاده از این ویژگی، میتوانید عملیاتهای سفارشی را برای کلاسها تعریف کنید و از اپراتورها برای انجام این عملیاتها استفاده کنید.
تعدادی از اپراتورهایی که قابل اورلود هستند عبارتند از:
- اپراتورهای ریاضی:
+
,-
,*
,/
,%
,+=
,-=
,*=
,/=
,%=
- اپراتورهای مقایسه:
==
,!=
,<
,>
,<=
,>=
- اپراتورهای منطقی:
!
,&&
,||
- اپراتورهای بیتی:
&
,|
,^
,~
,<<
,>>
,&=
,|=
,^=
,<<=
,>>=
- اپراتورهای ورودی و خروجی:
<<
,>>
- و…
برای اورلود یک اپراتور، باید یک تابع عضو (member function) یا تابع friend با نام مشخص شده برای آن اپراتور تعریف کنید. برای مثال، برای اورلود اپراتور +
برای یک کلاس به صورت زیر عمل میکنیم:
class MyClass {
public:
int value;
MyClass operator+(const MyClass& other) {
MyClass result;
result.value = this->value + other.value;
return result;
}
};
int main() {
MyClass obj1, obj2, result;
obj1.value = 5;
obj2.value = 10;
result = obj1 + obj2; // استفاده از اپراتور +
return 0;
}
در این مثال، اپراتور +
برای کلاس MyClass
اورلود شده است تا بتوانیم دو شیء از این کلاس را با هم جمع کنیم.
به طور کلی، تقریباً همهی اپراتورهای C++ قابل اورلود هستند، با این حال برخی از اپراتورها مانند .
(عضوگیری) و ::
(عضویت) و ?:
(conditional) و sizeof
و typeid
قابل اورلود نیستند.
موفق باشید
A.J
پست های مرتبط:
فروشگاه سورسا:
سورسا ، یک خانواده!
شما میتوانید از سورس های آماده به راحتی و با کپی پیست در پروژه خود استفاده بفرمایید
بله! سورسا به عنوان اولین و برترین مرجع سورس کد های آماده، تمامی سورس کد ها در زبان های مختلف را به صورت رایگان در اختیار شما قرار میدهد.
اگر سورس مد نظر شما تفاوتی با سورس فعلی دارد یا اینکه درخواست سورس دیگری را دارید میتوانید با کارشناسان سورسا در ارتباط باشید.
سورسا به عنوان مرجع سورس در تلاش است سورس کد ها و آموزش های تمامی زبان های برنامه نویسی مانند GO C++ Python C PHP SQL JS و… را تحت پوشش قرار داد