Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में एक्सट्रैक्शन ऑपरेटर को ओवरलोड करने का प्रोग्राम


मान लीजिए हमारे पास एक Person क्लास है जिसमें दो विशेषताएं हैं: first_name और last_name। इसमें first_name और last_name को प्राप्त या सेट करने के लिए get_first_name() और get_last_name() दो विधियां भी हैं। हमें एक्सट्रैक्शन ऑपरेटर (<<) को ओवरलोड करना होगा ताकि first name और last name को cout स्टेटमेंट का उपयोग करके प्रिंट किया जा सके।

उदाहरण के लिए, यदि इनपुट first name "Sumit" और last name "Ray" वाला एक व्यक्ति ऑब्जेक्ट है, तो आउटपुट होगा: First name - Sumit, Last name - Ray.

समाधान दृष्टिकोण

इस समस्या को हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • एक्सट्रैक्शन ऑपरेटर को ओवरलोड करने के लिए, इसे क्लास के बाहर परिभाषित किया जाना चाहिए
  • रिटर्न टाइप ostream रेफरेंस होगा
  • इनपुट पैरामीटर एक ostream रेफरेंस वेरिएबल os, और ऑब्जेक्ट रेफरेंस वेरिएबल होंगे
  • os का उपयोग करके ऑब्जेक्ट के सभी भागों को उचित क्रम में निकालें
  • os ऑब्जेक्ट रेफरेंस लौटाएं

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

#include <iostream> using namespace std; class Person {     private:         string f_name;         string l_name;     public:         Person(string first_name, string last_name) : f_name(first_name), l_name(last_name) {}         string& get_first_name() {           return f_name;         }         string& get_last_name() {           return l_name;         } }; ostream& operator<<(ostream& os, Person& p) {     os << "First name: " << p.get_first_name() << ", Last name: " << p.get_last_name();     return os; } int main(){    Person p("Sumit", "Ray");        cout << p << ", he is our member."; } 

इनपुट

p("Sumit", "Ray")

आउटपुट

First name: Sumit, Last name: Ray, he is our member.
  1. - C++ में delete() ऑपरेटर

    delete ऑपरेटर का उपयोग मेमोरी को डीएलोकेट करने के लिए किया जाता है। यूजर के पास इस delete ऑपरेटर द्वारा बनाए गए पॉइंटर वेरिएबल को डीएलोकेट करने का विशेषाधिकार होता है। C++ भाषा में delete ऑपरेटर का सिंटैक्स निम्नलिखिक है, delete pointer_variable; आवंटित मेमोरी ब्लॉक को डिलीट करने का सिंटैक्स निम्नलि

  1. - C++ क्लास नाम के बाद सेमीकोलन का क्या अर्थ है?

    यदि आपके पास निम्न जैसे स्टेटमेंट्स हैं – Class Person; यह एक फॉरवर्ड डिक्लेरेशन है। यह बाद के कोड को बताता है कि Person नाम की क्लासेस मौजूद हैं। यह कंपाइलर को संतुष्ट करता है जब यह इन नामों को उपयोग होते देखता है। बाद में लिंकर क्लासेस की परिभाषा ढूंढ लेगा।

  1. - C++ में यूनरी माइनस ऑपरेटर को ओवरलोड करना

    C++ में operator कीवर्ड एक फ़ंक्शन घोषित करता है जो बताता है कि किसी क्लास के इंस्टेंस पर लागू होने पर ऑपरेटर-चिह्न का क्या अर्थ होता है। इससे ऑपरेटर को एक से अधिक अर्थ मिलते हैं, या इसे ओवरलोड किया जाता है। कंपाइलर इसके ऑपरेंड के प्रकारों की जांच करके ऑपरेटर के विभिन्न अर्थों में अंतर करता है। यून