एकल ऑपरेटर एक मात्रा पर कार्य करते हैं और निम्नलिखित एकल ऑपरेटरों के नमूने हैं - - वेतन वृद्धि ( ) और कमी (--) ऑपरेटर। कंपाइलर एक ऑपरेटर के विभिन्न अर्थों के बीच उसके ऑपरेंड के प्रकारों की जांच करके अंतर करता है।
यूनरी ऑपरेटर एक ही ऑपरेंड पर काम करते हैं और यूनरी ऑपरेटरों के उदाहरण निम्नलिखित हैं -
- इन्क्रीमेंट (++) और डिक्रीमेंट (--) ऑपरेटर्स।
- यूनरी माइनस (-) ऑपरेटर।
- तार्किक नहीं (!) ऑपरेटर।
यूनरी ऑपरेटर उस ऑब्जेक्ट पर काम करते हैं जिसके लिए उन्हें बुलाया गया था और सामान्य रूप से, यह ऑपरेटर ऑब्जेक्ट के बाईं ओर दिखाई देता है, जैसे कि !obj, -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