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

C++ में '-' ऑपरेटर का उपयोग करके दो संख्याओं का जोड़


ऑपरेटर ओवरलोडिंग क्या है?

ऑपरेटर ओवरलोडिंग C++ में एक महत्वपूर्ण अवधारणा है। यह पॉलीमॉर्फिज्म का एक प्रकार है जिसमें एक ऑपरेटर को ओवरलोड करके उपयोगकर्ता-परिभाषित अर्थ दिया जाता है। ओवरलोडेड ऑपरेटर का उपयोग उपयोगकर्ता-परिभाषित डेटा प्रकार पर ऑपरेशन करने के लिए किया जाता है। उदाहरण के लिए, '+' ऑपरेटर को विभिन्न डेटा प्रकारों पर जोड़ करने के लिए ओवरलोड किया जा सकता है, जैसे पूर्णांक के लिए, स्ट्रिंग के लिए (कंकेटनेशन), आदि।

समस्या

'-' ऑपरेटर को ओवरलोड करके दो संख्याओं का जोड़ करना।

Input: 10 20 20 30
Output: 30 50

व्याख्या

बाइनरी ऑपरेटर्स को एक ऑब्जेक्ट को आर्गुमेंट के रूप में चाहिए ताकि वे ऑपरेशन कर सकें। यदि हम फ्रेंड फंक्शन्स का उपयोग कर रहे हैं तो उन्हें दो आर्गुमेंट्स की आवश्यकता होगी।

ऑपरेटर को इस प्रकार बुलाया जाता है: ob1 - ob2। ऑपरेटर से पहले का ऑब्जेक्ट फंक्शन को इनवोक करेगा और ऑपरेटर के बाद का ऑब्जेक्ट फंक्शन को आर्गुमेंट के रूप में पास किया जाएगा। तो इस मामले में, ob1 इनवोकिंग ऑब्जेक्ट है और ob2 आर्गुमेंट के रूप में पास किया गया है।

हम ob1 के x और y के मान 10, 20 और ob2 के x और y के मान 20, 30 पास कर रहे हैं।

उदाहरण

#include <iostream>
using namespace std;

class Sum {
public:
    int x, y;

    void getdata(int a, int b) {
        x = a;
        y = b;
    }

    void display() {
        cout << "\nSum of X: " << x;
        cout << "\nSum of Y: " << y;
    }

    // '-' ऑपरेटर ओवरलोडिंग
    void operator-(Sum &ob) {
        x = x + ob.x;  // घटाने के बजाय जोड़
        y = y + ob.y;  // घटाने के बजाय जोड़
        display();
    }
};

int main() {
    Sum ob1, ob2;
    ob1.getdata(10, 20);
    ob2.getdata(20, 30);
    ob1 - ob2;  // यह वास्तव में जोड़ करेगा!
    return 0;
}

आउटपुट

Sum of X: 30
Sum of Y: 50

महत्वपूर्ण बिंदु

  • ऑपरेटर ओवरलोडिंग क्लास के अंदर मेंबर फंक्शन के रूप में या बाहर फ्रेंड फंक्शन के रूप में की जा सकती है
  • मेंबर फंक्शन के लिए, लेफ्ट ऑपरेंड कॉलिंग ऑब्जेक्ट होता है
  • फ्रेंड फंक्शन के लिए, दोनों ऑपरेंड्स पैरामीटर्स के रूप में पास होते हैं
  • कुछ ऑपरेटर्स ओवरलोड नहीं किए जा सकते: ::, .*, ., ?:, sizeof

व्यावहारिक उपयोग

यह उदाहरण ऑपरेटर ओवरलोडिंग की अवधारणा दिखाने के लिए है। वास्तविक कोड में, '-' ऑपरेटर को जोड़ के लिए ओवरलोड करना भ्रमित करने वाला होगा और अच्छी प्रथा नहीं मानी जाती। ऑपरेटर का अर्थ सहज होना चाहिए।

  1. - दो पूर्णांकों के बीच आर्मस्ट्रांग नंबर C++ में

    आर्मस्ट्रांग नंबर क्या है? एक पूर्णांक को क्रम n का आर्मस्ट्रांग नंबर कहा जाता है यदि इसके प्रत्येक अंक को अलग करके घन किया जाए और उनका योग निकाला जाए, तो योग वही संख्या होगी। अर्थात: abcd... = a³ + b³ + c³ + d³ + ... 3 अंकों के आर्मस्ट्रांग नंबर के मामले में, प्रत्येक अंक के घन का योग संख्या के ब

  1. - C प्रोग्राम: किसी ऑपरेटर का उपयोग किए बिना दो संख्याओं का योग ज्ञात करना

    इस सेक्शन में हम देखेंगे कि अपने प्रोग्राम में किसी भी प्रकार के ऑपरेटर का उपयोग किए बिना दो संख्याओं का योग कैसे प्रिंट करें। यह समस्या ट्रिकी है। इस समस्या को हल करने के लिए हम printf() स्टेटमेंट के न्यूनतम चौड़ाई फील्ड का उपयोग कर रहे हैं। उदाहरण के लिए यदि हम printf() का उपयोग करके Hello से पह

  1. - C++ प्रोग्राम: ऑपरेटर ओवरलोडिंग का उपयोग करके कॉम्प्लेक्स नंबर घटाएं

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