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

C++ में वर्चुअल फ़ंक्शन्स और रनटाइम पॉलीमॉर्फिज्म


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

वर्चुअल फ़ंक्शन का मुख्य उपयोग रनटाइम पॉलीमॉर्फिज्म प्राप्त करना है। रनटाइम पॉलीमॉर्फिज्म केवल बेस क्लास टाइप के पॉइंटर (या रेफरेंस) के माध्यम से प्राप्त किया जा सकता है। साथ ही, एक बेस क्लास पॉइंटर बेस क्लास के ऑब्जेक्ट्स के साथ-साथ डेराइव्ड क्लास के ऑब्जेक्ट्स को भी इंगित कर सकता है। उपरोक्त कोड में, बेस क्लास पॉइंटर 'b' में डेराइव्ड क्लास के ऑब्जेक्ट 'd' का पता होता है।

उदाहरण कोड

#include<iostream> using namespace std; class B {    public:       virtual void s() {          cout<<" In Base \n";       } }; class D: public B {    public:       void s() {          cout<<"In Derived \n";       } }; int main(void) {    D d; // क्लास D का एक ऑब्जेक्ट    B *b= &d; // d को इंगित करने वाला B* टाइप का पॉइंटर    b->s(); // प्रिंट करता है "D::s() called"    return 0; }

आउटपुट

In Derived

  1. - C++ में क्लासेस और ऑब्जेक्ट्स (Classes and Objects)

    क्लास क्या है? C++ की प्रमुख विशेषता जो OOPS अवधारणाओं का समर्थन करती है और उपयोगकर्ता-परिभाषित डेटा प्रकार है। क्लास ऑब्जेक्ट के लिए विनिर्देश (blueprint) प्रदान करती है और डेटा चर तथा डेटा मैनिपुलेट करने वाले फ़ंक्शंस को एक पैकेज में रखती है। क्लास परिभाषा class कीवर्ड से शुरू, फिर क्लास नाम, फि

  1. - C++ में सील (ceil) और फ्लोर (floor) फ़ंक्शंस

    ceil फ़ंक्शन दिए गए मान के बराबर या उससे बड़ा सबसे छोटा पूर्णांक मान लौटाता है। <cmath> हेडर में घोषित। सिंगल पैरामीटर लेता है (double/float/long double)। सिंटैक्स double ceil(double x); float ceil(float x); उदाहरण #include <iostream> #include <cmath> using namespace std; int m

  1. - C++ में फ्रेंड क्लास और फ़ंक्शन

    किसी क्लास का फ्रेंड फ़ंक्शन उस क्लास के स्कोप के बाहर परिभाषित होता है लेकिन उसे उस क्लास के सभी प्राइवेट और प्रोटेक्टेड मेंबर्स को एक्सेस करने का अधिकार होता है। भले ही फ्रेंड फ़ंक्शन के प्रोटोटाइप क्लास परिभाषा में दिखाई देते हैं, फ्रेंड मेंबर फ़ंक्शन नहीं होते। एक फ्रेंड एक फ़ंक्शन, फ़ंक्शन टेम