آموزش سربارگذاری عملگرها در C++ (به زبان کاملا ساده)

رتبه: 5 ار 2 رای SSSSS
آموزش سربارگذاری عملگرها در C++
نویسنده: تیم تولید محتوا زمان مطالعه 2 دقیقه

در C++، امکان تغییر عملکرد عملگرها (برای انواع تعریف شده توسط کاربر) امکان پذیر است. در این آموزش، با پیاده سازی ویژگی های سربارگذاری عملگرها آشنا می شوید.

معنای عملگر همیشه برای انواع متغیرهای اساسی مثل int، float، double و غیره یکسان است. برای مثال: برای اضافه کردن دو عدد صحیح، عملگر + استفاده می شود.

با این حال، برای انواع تعریف شده توسط کاربر (مانند: اشیاء)، می توان عملگرها را به نحوی مجدد تعریف کنید. مثلا:

اگر دو شی از یک کلاس وجود داشته باشد که شامل متغیری از نوع string است، می توان عملگر + را دوباره تعریف و از آن برای ترکیب رشته ها استفاده کرد.

این ویژگی در برنامه نویسی C++ که برنامه نویس را قادر می سازد تعریف مجدد عملگر را انجام دهد، (برای اشیا کلاس) به عنوان سربارگذاری عملگر شناخته می شود.

چرا تعریف مجدد عملگر استفاده می شود؟

می توان هر برنامه C++ را بدون دانستن و پیاده سازی مجدد عملگرها نوشت. با این حال، سربارگذاری عملگر توسط برنامه نویسان، برای ایجاد یک برنامه قابل درک استفاده می شود. مثلا

می توانید کد را اینطور جایگزین کنید:

calculation = add(multiply(a, b),divide(a, b));

به

calculation = (a*b)+(a/b);

چگونه عملگرها را در C++ تعریف مجدد کنیم؟

برای تعریف مجدد عمگر، یک تابع عملگر خاص در داخل کلاس تعریف می شود:

class className

{

… .. …

public

returnType operator symbol (arguments)

{

… .. …

}

… .. …

};

در اینجا، returnType نوع بازگشتی تابع است.

symbol نماد عملگریست که می خواهید آن را مجددا تعریف کنید. مانند: +، <، -، ++

می توانید آرگومان را به روش مشابه قبلی به تابع عملگر ارسال کنید.

مثال: سربارگذاری عملگر در برنامه نویسی C++

  1. #include <iostream>
  2. using namespace std;
  3. class Test
  4. {
  5. private:
  6. int count;
  7. public:
  8. Test(): count(5){}
  9. void operator ++()
  10. {
  11. count = count+1;
  12. }
  13. void Display() { cout<<“Count: “<<count; }
  14. };
  15. int main()
  16. {
  17. Test t;
  18. // this calls “function void operator ++()” function
  19. ++t;
  20. t.Display();
  21. return 0;
  22. }

خروجی

Count: 6

این تابع هنگامی که عملگر ++ بخواهد بر روی شیء کلاس

Test (object t در این مورد)

عمل کند، صدا زده می شود.

در برنامه، تابع عملگر

void operator ++()

در کلاس Test تعریف شده است.

این تابع مقدار count را برای شیء t یک واحد افزایش می دهد.

نکات مهم

۱- سربارگذاری عملگر اجازه می دهد تا مجددا عملگر را تعریف کنید که فقط برای انواع تعریف شده توسط کاربر (اشیا، ساختارها) کار می کند. نمی تواند برای انواع int، float، char و غیره استفاده شود.

۲- دو اپراتور = و & فعلا در C++ به طور پیش فرض تعریف مجدد شده اند.. به عنوان مثال: برای کپی اشیاء از کلاس مشابه، می توانید مستقیما از عملگر = استفاده کنید. نیازی به ایجاد تابع عملگر ندارید.

۳- سربارگذاری عملگرها نمی تواند اولویت و وابستگی آن ها را تغییر دهد. با این حال، اگر می خواهید به آن ها اولویت دهید، باید از پرانتز استفاده کنید.

۴- چهار عملگر در C++ وجود دارد که نمیتوان آن ها را تعریف مجدد کرد. :: (تشخیص حوزه)، . (انتخاب عضو)، * (انتخاب عضو از طریق اشاره گر به تابع) و 😕 (عملگر سه جانبه).

بهترین روش ها را هنگام استفاده از سربارگذاری عملگر دنبال کنید

همانطور که خواندید تعریف مجدد عملگر، اجازه می دهد تا نحوه کار آن را دوباره مشخص کنید.

در مثال بالا، عملگر ++ بر روی شیء عمل می کند تا مقدار count را یک واحد افزایش دهد.

void operator ++()

{

count = count+1;

}

با این حال، اگر از کد زیر استفاده می کنید، هنگامی که عملگر ++ استفاده می شود، مقدار count 100 کاهش می یابد.

void operator ++()

{

count = count-100;

}

کد بالا از لحاظ فنی درست اما گیج کننده و درک آن دشوار است.

شغل شما به عنوان یک برنامه نویس، استفاده به موقع و درست از سربارگذاری عملگرهاست.

در مثال بالا، وقتی عملگر ++ استفاده می شود، مقدار count یک واحد افزایش می یابد. با این حال، این برنامه ناقص است زیرا نمی توانید از کد زیر استفاده کنید چون که نوع بازگشتی از تابع عملگر، void است.

t1 = ++t

profile name
تیم تولید محتوا

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

محصولات مرتبط

مشاهده همه

دیدگاهتان را بنویسید

1 2 3 4 5

2 نظر درباره «آموزش سربارگذاری عملگرها در C++ (به زبان کاملا ساده)»

  • مهدی
    مهدی آیا این دیدگاه مفید بود ؟

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

    پاسخ
  • مهدی
    مهدی آیا این دیدگاه مفید بود ؟

    مرسی از برنامتون

    پاسخ
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید