অপারেটর ওভারলোডিং C++-এ একটি গুরুত্বপূর্ণ ধারণা। এটি পলিমরফিজমের একটি ধরন যেখানে একটি অপারেটরকে ওভারলোড করে ইউজার-ডিফাইনড অর্থ দেওয়া হয়। ওভারলোডেড অপারেটর ইউজার-ডিফাইনড ডেটা টাইপের ওপর অপারেশন করার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, '+' অপারেটরকে ওভারলোড করে 다양한 ডেটা টাইপে যোগ করা যায়, যেমন ইন্টিজার, স্ট্রিং (ক্যাটেনেশন) ইত্যাদি।
ইনপুট
10 20 20 30
আউটপুট
30 50
ব্যাখ্যা
অপারেটর ওভারলোডিং ব্যবহার করে '-' অপারেটর দিয়ে দুটি সংখ্যা যোগ করা। বাইনারি অপারেটরগুলোর জন্য একটি অবজেক্ট আর্গুমেন্ট হিসেবে প্রয়োজন যাতে সেগুলো অপারেশন সম্পাদন করতে পারে। যদি ফ্রেন্ড ফাংশন ব্যবহার করা হয় তবে দুটি আর্গুমেন্ট লাগবে।
অপারেটরটি কল হচ্ছে: ob1-ob2। অপারেটরের আগের অবজেক্ট ফাংশনটি আহ্বান করবে এবং অপারেটরের পরের অবজেক্ট আর্গুমেন্ট হিসেবে পাস হবে। তাই এই কেসে, ob1 আহ্বানকারী অবজেক্ট এবং ob2 ফাংশনে আর্গুমেন্ট হিসেবে পাস হবে।
আমরা 10, 20 কে ob1-এর x এবং y ভ্যালু হিসেবে এবং 20, 30 কে ob2-এর x এবং y ভ্যালু হিসেবে পাস করছি।
উদাহরণ
#include <iostream>
using namespace std;
class sum {
public:
int x, y, z;
void getdata(int a, int b) {
x = a;
y = b;
}
void display() {
cout << "\nSum of X:" << x;
cout << "\nSum of Y:" << y;
}
void operator-(sum &);
};
void sum::operator-(sum &ob) {
x = x + ob.x;
y = y + ob.y;
display();
}
int main() {
sum ob1, ob2;
ob1.getdata(10, 20);
ob2.getdata(20, 30);
ob1 - ob2;
}