C++ बिल्ट-इन डेटा टाइप्स को स्ट्रीम एक्सट्रैक्शन ऑपरेटर >> और स्ट्रीम इंसर्शन ऑपरेटर << का उपयोग करके इनपुट और आउटपुट करने में सक्षम है। स्ट्रीम इंसर्शन और स्ट्रीम एक्सट्रैक्शन ऑपरेटर्स को यूजर-डिफाइंड टाइप्स जैसे ऑब्जेक्ट के लिए इनपुट और आउटपुट करने के लिए भी ओवरलोड किया जा सकता है।
यहां, ऑपरेटर ओवरलोडिंग फंक्शन को क्लास का फ्रेंड बनाना महत्वपूर्ण है क्योंकि इसे ऑब्जेक्ट बनाए बिना बुलाया जाएगा।
निम्नलिखित उदाहरण बताता है कि एक्सट्रैक्शन ऑपरेटर >> और इंसर्शन ऑपरेटर << कैसे काम करते हैं।
उदाहरण कोड
#include <iostream> using namespace std; class Distance { private: int feet; // 0 से अनंत int inches; // 0 से 12 public: // आवश्यक कंस्ट्रक्टर Distance() { feet = 0; inches = 0; } Distance(int f, int i) { feet = f; inches = i; } friend ostream &operator<<( ostream &output, const Distance &D ) { output << "F : " << D.feet << " I : " << D.inches; return output; } friend istream &operator>>( istream &input, Distance &D ) { input >> D.feet >> D.inches; return input; } }; int main() { Distance D1(11, 10), D2(5, 11), D3; cout << "ऑब्जेक्ट का मान दर्ज करें: " << endl; cin >> D3; cout << "पहली दूरी: " << D1 << endl; cout << "दूसरी दूरी:" << D2 << endl; cout << "तीसरी दूरी:" << D3 << endl; return 0; }
आउटपुट
$./a.out ऑब्जेक्ट का मान दर्ज करें: 70 10 पहली दूरी: F : 11 I : 10 दूसरी दूरी:F : 5 I : 11 तीसरी दूरी:F : 70 I : 10