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

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

folderکلاس و اشیا
comments2 دیدگاه
اساطیر زبان

در 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

تفاوت پک های حرفه ای ما با آموزشهای رایگان: بطور خلاصه از زمین تا آسمان! 1-پکها، جدیدترین نسخه نرم افزارها را آموزش می دهند با قابلیت های بسیار بیشتر. 2-پکها توسط متخصص آن نرم افزار، به صورت کاملا پروژه محور و با حل چالش هایی که در مسیر کار عملی و حرفه ای با آن روبرو می شوید تهیه شده اند و بعد از استفاده، کاملا برای بازار کار آماده اید! 3- متد این پکها کاملا کار شده و تا ماهها، در ذهن تان ماندگارند و یادگیری بسیار سریعتر و کاملتری خواهید داشت. آموزشهای رایگان فقط دستورات نرم افزارها را (آنهم ناقص) بیان می کنند و تازه برای ورود به بازار باید ماهها تجربه عملی هم کسب کنید !!

turned_in,

چرب زبان

با این اپلیکیشن ساده، هر زبانی رو فقط با 5 دقیقه در روز، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، تقویت حافظه، آموزش تصویری. یادگیری زبان کلید یادگیری هر مهارتی در قرن 21 !


حتما بخوانید!

2 دیدگاه. ارسال دیدگاه جدید

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست