অপারেটর কীওয়ার্ড একটি ফাংশন ডিক্লেয়ার করে যা নির্দেশ করে একটি অপারেটর-সিম্বল কী বোঝাবে যখন একটি ক্লাসের ইনস্ট্যান্সের ওপর অ্যাপ্লাই করা হবে। এটি অপারেটরকে একাধিক অর্থ দেয়, বা "ওভারলোড" করে। কম্পাইলার অপারেটরের বিভিন্ন অর্থ এর অপারেন্ডের টাইপ খেয়াল করке ডিসটিংুইশ করে।
আনারি অপারেটরগুলো একটি অপারেন্ডের ওপর অপারেট করে এবং আনারি অপারেটরের উদাহরণগুলো হল -
- ইনক্রিমেন্ট (++) এবং ডিক্রিমেন্ট (--) অপারেটর।
- আনারি মাইনাস (-) অপারেটর।
- লজিক্যাল নট (!) অপারেটর।
আনারি অপারেটরগুলো সেটি কল করা অবজেক্টের ওপর অপারেট করে এবং সাধারণত, এই অপারেটর অবজেক্টের বাম পাশে থাকে, যেমন !obj, -obj, এবং ++obj কিন্তু কখনো কখনো সেগুলো পোস্টফিক্স হিসেবে ব্যবহার করা যায় যেমন obj++ বা obj--।
নিচের উদাহরণ ব্যাখ্যা করে কিভাবে bang(!) অপারেটর প্রিফিক্স ব্যবহার জন্য ওভারলোড করা যায় -
উদাহরণ
#includeusing 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