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

निष्कर्षण ऑपरेटर को अधिभारित करने के लिए C++ प्रोग्राम

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

इसलिए, यदि इनपुट पहले नाम और अंतिम नाम ("सुमित", "रे") के साथ एक व्यक्ति वस्तु की तरह है, तो आउटपुट पहला नाम - सुमित, अंतिम नाम - रे होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • निष्कर्षण ऑपरेटर को अधिभारित करने के लिए, इसे कक्षा के बाहर परिभाषित किया जाना चाहिए

  • वापसी का प्रकार एक ओस्ट्रीम संदर्भ होगा

  • इनपुट पैरामीटर एक ओस्ट्रीम संदर्भ चर ओएस, और वस्तु संदर्भ चर हैं

  • 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 pointer_variable; आबंटित मेमोरी के ब्लॉक को हटाने के लिए सिंटैक्स यहां दिय

  1. C++ वर्ग के नाम के बाद अर्धविराम क्या करता है?

    यदि आपके पास − . जैसे कथन हैं Class Person; यह आगे की घोषणा है। यह निम्नलिखित कोड को बताता है कि व्यक्ति नाम के साथ कक्षाएं हैं। यह संकलक को संतुष्ट करता है जब वह इन नामों का उपयोग देखता है। बाद में लिंकर को कक्षाओं की परिभाषा मिल जाएगी।

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

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