Overriding functions c++ In Hindi

Overriding functions c++ In Hindi

C++ प्रोग्रामिंग लैंग्वेज में फंक्शन ओवरराइडिंग मेथड ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग OOPS कांसेप्ट में पॉलीमॉर्फिज्म का एक इम्पोर्टेन्ट फीचर्स या एडवांटेज है। फंक्शन ओवरराइडिंग मेथड एक यूजर डिफाइन क्लास में क्रिएटेड डिराइव्ड सबक्लास क्लास को किसी एक ऐसे फंक्शन के लिए एक स्पेशल क्लास इम्प्लीमेंटेशन प्रोवाइड करने में हेल्प करता है. जो डिराइव्ड क्लास में बेस क्लास में पहले से डिफाइन या डिक्लेअर किया गया होता है। जब किसी C++ प्रोगाम में कोई फंक्शन आटोमेटिक ओवरराइड होता है, तो उस कंडीशन में यूजर डिफाइन मौजूदा क्लास में डिराइव्ड क्लास का फंक्शन, मौजूदा डिराइव्ड क्लास के किसी ऑब्जेक्ट पैरामीटर एलिमेंट में कॉल किए जाने पर बेस या रुट क्लास के फंक्शन को उससे रिप्लेस या मॉडिफाई कर देता है।

Overriding functions c++ In Hindi

C++ प्रोग्रामिंग लैंग्वेज में फंक्शन ओवरराइडिंग प्रोसेस तब डेवलप होती है. जब

यूजर डिफाइन क्लास में एक बेस या रुट क्लास फंक्शन को वर्चुअल रूप में डिक्लेयर या डिफाइन किया जाता है।

जिसमे एक यूजर डिफाइन डिराइव्ड सबक्लास उसी फंक्शन को अपना इम्प्लीमेंटेशन प्रोवाइड करता है. जैसे, उस क्लास फंक्शन मेथड का नाम, रिटर्न डाटा टाइप, और क्लास में डिक्लेअर वेरिएबल पैरामीटर आर्गुमेंट लिस्ट एक जैसी होती है।

Special features of function overriding in C++ programming.

  • Virtual function – C++ क्लास प्रोग्राम में बेस या पैरेंट क्लास में एक फंक्शन को वर्चुअल कीवर्ड के रूप में डिक्लेअर या मार्क किया जाता है. जिससे की यह जाना जा सके की उसे डिराइव्ड सबक्लास में ओवरराइड किया जा सकता है।
  • Overriding – फंक्शन ओवरराइड़िग कांसेप्ट डिराइव्ड सबक्लास बेस या रुट क्लास में पहले से डिक्लेअर फंक्शन का अपना एक इम्प्लीमेंटेशन प्रोवाइड करता है।
  • Polymorphism – क्लास में मौजूद फंक्शन ओवरराइडिंग कांसेप्ट पॉलीमॉर्फिक बिहेवियर की परमिशन को प्रोवाइड करता है, इसका मतलब है कि जो क्लास मेथड एग्जीक्यूट होता है, वह उस क्लास ऑब्जेक्ट के डाटा टाइप पर डिपेंड करता है. क्लास पॉइंटर या उसके रेफरेंस के डाटा टाइप पर पूर्ण रूप से नहीं।

Syntax of function overriding in C++.

class Base {

public:

virtual void preview() { // The reserved virtual keyword here allows function overriding.

std::cout << “Base class preview function element” << std::endl;

}

};

class Derived : public Base {

public:

void preview() override { // This overrides the Base class method.

std::cout << “Derived class preview function” << std::endl;

}

};

Here’s a function overriding example.

  • यहाँ इस एक्साम्प्ल में Base पैरेंट क्लास एक वर्चुअल फ़ंक्शन preview() को डिक्लेअर करता है।
  • यहाँ Derived सबक्लास अपने डिफ़ॉल्ट इम्प्लीमेंटेशन के साथ preview() फंक्शन को ओवरराइड कर देता है।
  • जिसमे override कीवर्ड एक ऑप्शनल क्लास मेथड है, लेकिन एडवांस प्रोग्राम सोर्स कोड रीडेबिलिटी और इश्यूज एरर चेकिंग के लिए इसे यूज़ किया जा सकता है।

Example of function overriding methods in C++.

#include <iostream>

class Root {

public:

    virtual void preview() {  // here we use Virtual function with preview name

        std::cout << “Root Base class preview function” << std::endl;

    }

};

class Subclass : public Root {

public:

    void preview() override {  // here it Override the Root/base class method

        std::cout << “Subclass/Derived class preview override function” << std::endl;

    }

};

int main() {

    Root* rootPtr;    // here Pointer to Root/base class element define

    Subclass derivedArgs;

    rootPtr = &derivedArgs;  // here it Pointing to Subclass class object

    rootPtr->preview();     // here it Calls Subclass class version of preview()function

    return 0;

}

Explanation of function overriding methods in C++.

  • यहाँ इस एक्साम्प्ल में Root बेस क्लास में preview() एक वर्चुअल फ़ंक्शन डिक्लेअर किया गया है. जो इसे डेरिव्ड क्लास में फंक्शन ओवरराइड करने की परमिशन प्रोवाइड करता है।
  • यहाँ डेरिव्ड सबक्लास क्लास में preview() फंक्शन का अपना इम्प्लीमेंटेशन प्रोवाइड करता है, जो बेस क्लास के वर्जन को ओवरराइड कर देता है। प्रोग्राम main() फ़ंक्शन में, हम एक बेस पॉइंटर (rootPtr) क्रिएट करते हैं, और उसे एक डेरिव्ड ऑब्जेक्ट (&derivedArgs) को एक एड्रेस असाइन करते हैं।
  • जब मौजूदा प्रोग्राम में rootPtr->preview() फंक्शन को कॉल किया जाता है, तो यह डेरिव्ड सबक्लास क्लास से preview() के ओवरराइड किए गए वर्जन को कॉल करता है, बेस रुट क्लास से नहीं। ऐसा पॉलीमॉर्फिज़्म कांसेप्ट की वजह से होता है।

Leave a Reply