Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> 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; // An object of class D
   B *bptr = &d;// A pointer of type B* pointing to d
   b.s();//Can be inlined as s() is called through object of class
   bptr->s();// prints"D::s() called"
   //cannot be inlined, as virtualfunction is called through pointer.
   return 0;
}

आउटपुट

In Base
In Derived

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

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

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

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

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

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