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) { D d; // क्लास D का एक ऑब्जेक्ट B *b= &d; // d को इंगित करने वाला B* टाइप का पॉइंटर b->s(); // प्रिंट करता है "D::s() called" return 0; }
आउटपुट
In Derived