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

C++ में इंलाइन वर्चुअल फंक्शन


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

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

जब भी किसी वर्चुअल फंक्शन को बेस क्लास रेफरेंस या पॉइंटर का उपयोग करके कॉल किया जाता है, तो इसे इंलाइन नहीं किया जा सकता, लेकिन जब भी इसे उस क्लास के ऑब्जेक्ट का उपयोग करके बिना रेफरेंस या पॉइंटर के कॉल किया जाता है, तो इसे इंलाइन किया जा सकता है क्योंकि कंपाइलर कंपाइल टाइम पर ऑब्जेक्ट की सटीक क्लास जानता है।

उदाहरण कोड

#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) {    B b;    D d; // क्लास D का एक ऑब्जेक्ट    B *bptr = &d;// B* टाइप का एक पॉइंटर जो d की ओर इशारा करता है    b.s();//इंलाइन किया जा सकता है क्योंकि s() को क्लास के ऑब्जेक्ट के माध्यम से कॉल किया जाता है    bptr->s();// prints"D::s() called"    //इंलाइन नहीं किया जा सकता, क्योंकि वर्चुअल फंक्शन को पॉइंटर के माध्यम से कॉल किया जाता है।    return 0; }

आउटपुट

In Base In Derived

  1. - C++ में वर्चुअल फंक्शन और प्योर वर्चुअल फंक्शन के बीच अंतर

    निम्नलिखित तालिका वर्चुअल और प्योर वर्चुअल फंक्शन के बीच अंतर दिखाती है:वर्चुअल फंक्शनप्योर वर्चुअल फंक्शनवर्चुअल फंक्शन की क्लास में उनकी परिभाषा होती है।प्योर वर्चुअल फंक्शन की कोई परिभाषा नहीं होती।डिक्लेरेशन: virtual funct_name(parameter_list) {. . . . .};डिक्लेरेशन: virtual funct_name(parameter

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

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

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

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