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