Hello दोस्तों! आज हम इस post में Polymorphism in C++ in Hindi (सी.प्लस.प्लस में पोलीमोरफिस्म क्या है?) के बारें में पढेंगे और इसके examples को भी देखेंगे. मैंने इसे बहुत ही आसान भाषा में लिखा है. आप इसे पूरा पढ़िए. आपको यह आसानी से समझ में आ जायेगा. तो चलिए शुरू करते हैं:-
टॉपिक
Polymorphism in C++ in Hindi
- C++ में, polymorphism का अर्थ है many forms.
- यह दो शब्दों में मिलकर बना हुआ है poly और forms. यह एक geek शब्द है.
- सरल शब्दों में कहें तो, “polymorphism का अर्थ है बहुत सारें forms (रूप) का होना.”
- Polymorphism एक ability है जिसके द्वारा एक message को बहुत सारें forms में display किया जाता है.
- C++ में, Polymorphism तब होता है जब हमारे पास बहुत सारें classes होते हैं जो inheritance के द्वारा एक दूसरे से जुड़े रहते हैं.
Polymorphism का real life उदाहरण:-
तो चलिए एक real life example को देखते हैं. एक महिला college में एक teacher है. और वह महिला अपने घर में एक माँ या बेटी होती है. तथा market में एक customer होती हैं. यहाँ पर एक महिला के situations के हिसाब से अलग-अलग forms (रूप) हैं. इसे ही polymorphism कहते हैं. यह object oriented programming (OOPs) का बहुत ही महत्वपूर्ण concept है.
Types of Polymorphism in C++ in Hindi
c++ में, यह दो प्रकार का होता है.
- Compile time polymorphism
- Run time polymorphism
1). Compile time polymorphism
इस प्रकार के polymorphism को function overloading या operator overloading के द्वारा प्राप्त किया जाता है. इसे static या early binding भी कहते हैं.
Overloaded functions को types और arguments की संख्या के आधार पर compile time में invoke किया जाता है. इसमें compiler सही function को compile time में select करता है.
Function overloading –
जब बहुत सारें functions के समान (same) name होते हैं परन्तु उनके parameters अलग-अलग होते है तो इसे function overloading कहा जाता है. Functions को arguments की संख्या को change करके या arguments के type को change करके overload किया जा सकता है.
इसका example –
#include <iostream>
using namespace std;
class Add {
public:
int sum(int num1, int num2){
return num1+num2;
}
int sum(int num1, int num2, int num3){
return num1+num2+num3;
}
};
int main() {
Add obj;
cout<<"Output: "<<obj.sum(15, 45)<<endl;
cout<<"Output: "<<obj.sum(21, 29, 20);
return 0;
}
इसका आउटपुट:-
output: 60
output: 70
Operator Overloading –
- हम C++ में operators को भी overload कर सकते हैं.
- यह एक compile time polymorphism है जिसमें user-defined data type को एक विशेष meaning देने के लिए operator को overload किया जाता है.
- example के लिए – हम ‘+’ ऑपरेटर के द्वारा दो strings को concatenate कर सकते है. हम जानते है कि + एक addition operator है जिसका प्रयोग दो operands को जोड़ने के लिए किया जाता है. तो + का प्रयोग integer operands के addition के लिए और strings को concatenate करने के लिए भी किया जाता है.
- हम operator overloading का प्रयोग basic data types जैसे:- int, double आदि के साथ नहीं कर सकते.
इसका example –
#include <iostream>
using namespace std;
class Count {
private:
int value;
public:
// Constructor to initialize count to 5
Count() : value(7) {}
// Overload ++ when used as prefix
void operator ++() {
value = value + 1;
}
void display() {
cout << "Count: " << value << endl;
}
};
int main() {
Count count1;
// Call the "void operator ++()" function
++count1;
count1.display();
return 0;
}
इसका आउटपुट:-
Count: 8
2). Runtime polymorphism
इस प्रकार के Polymorphism को Function overriding के द्वारा achieve (प्राप्त) किया जाता है. इसमें object method को compile time की बजाय run time में invoke किया जाता है. इसे dynamic या late binding भी कहते हैं.
Function Overriding –
Function overriding तब होती है जब derived class के पास base class के member functions के लिए definition होती हैं. अर्थात दोनों base और derived class के पास same name का function डिफाइन हुआ होता है.
इसका उदाहरण:-
#include <iostream>
using namespace std;
class A {
public:
void display() {
cout<<"Base class";
}
};
class B:public A {
public:
void display() {
cout<<"Derived Class";
}
};
int main() {
B obj;
obj.display();
return 0;
}
इसका आउटपुट:-
Derived Class
Difference b/w Compile time and Run time polymorphism in Hindi
इनके मध्य अंतर निम्नलिखित है:-
Compile-time | Run time |
इसमें फंक्शन compile time में invoke होता है. | इसमें फंक्शन run time में invoke होता है. |
इसे early binding या static binding भी कहते है. | इसे dynamic binding या late binding भी कहते है. |
इसे function overloading और operator overloading के द्वारा प्राप्त किया जाता है. | इसे virtual functions और pointers के द्वारा प्राप्त किया जाता है. |
यह कम flexible होता है. | यह ज्यादा flexible होता है. |
यह तेज execution प्रदान करता है. | यह धीमा execution प्रदान करता है. |
References:-
https://www.geeksforgeeks.org/polymorphism-in-c/
https://fresh2refresh.com/cpp-tutorial/cpp-polymorphism/
निवेदन:- अगर आपके लिए यह article उपयोगी रहा हो तो इसे अपने friends और classmates के साथ अवश्य share कीजिये. और आपके इस Polymorphism in C++ in Hindi से सम्बन्धित कोई सवाल हो तो उसे नीचे comment के द्वारा बताइए.
आपके लिए मैं ऐसे ही notes लाते रहता हूँ. अगर आपका कोई suggestion है या किसी दूसरे subject से related कोई सवाल हो तो उसे भी आप comment करके बता सकते हैं. Thanks.
Good idea tis is brilliant gob for hindi medium students
ehindistudy ka muze bahot fayda hoo raha hai ..bahot hii achha link hai..aise hii asche se hame c++samjao. Thank you…
Very very good I Understand this topic thanks teachers ☺️