operator কীওয়ার্ড একটি ফাংশন ঘোষণা করে যা নির্দিষ্ট করে কোন অপারেটর-চিহ্ন ক্লাসের উদাহরণের ওপর প্রযোজ্য হলে কী বোঝাবে। এটি অপারেটরকে একাধিক অর্থ দেয়, বা "ওভারলোড" করে। কম্পাইলার অপারেন্ডগুলির প্রকার বিশ্লেষণ করে একটি অপারেটরের বিভিন্ন অর্থের মধ্যে পার্থক্য করে।
ইউনারি অপারেটরগুলি একটি একক অপারেন্ডের ওপর কাজ করে এবং নিচে ইউনারি অপারেটরগুলির কিছু উদাহরণ দেওয়া হলো:
- ইনক্রিমেন্ট (++) এবং ডিক্রিমেন্ট (--) অপারেটর।
- ইউনারি মাইনাস (-) অপারেটর।
- লজিক্যাল নট (!) অপারেটর।
ইউনারি অপারেটরগুলি সেসব অবজেক্টের ওপর কাজ করে जिनके জন্য এগুলো কল করা হয়েছিল এবং সাধারণত এই অপারেটরটি অবজেক্টের বাম দিকে উপস্থিত থাকে, যেমন !obj, -obj, এবং ++obj কিন্তু কখনো কখনো এগুলো পোস্টফিক্স হিসেবেও ব্যবহার করা যেতে পারে seperti obj++ বা obj--।
উদাহরণ
নিচের উদাহরণে প্রিফিক্স ব্যবহারে মাইনাস(-) অপারেটর কীভাবে ওভারলোড করা যায় তা দেখানো হয়েছে:
#include <iostream>
using namespace std;
class Distance {
private:
int feet;
int inches;
public:
// Constructor
Distance(int f, int i) {
feet = f;
inches = i;
}
// দূরত্ব প্রদর্শনের মেথড
void display() {
cout << "F: " << feet << " I:" << inches << endl;
}
// ওভারলোডেড মাইনাস(-) অপারেটর
Distance operator-() {
feet = -feet;
inches = -inches;
return Distance(feet, inches);
}
};
int main() {
Distance D1(3, 4), D2(-1, 10);
-D1;
D1.display();
-D2;
D2.display();
return 0;
}
আউটপুট
এটি নিচের আউটপুট দেবে:
F: -3 I:-4 F: 1 I:-10