निम्न तालिका वर्चुअल और प्योर वर्चुअल फंक्शन के बीच अंतर दिखाती है:
Virtual Function वें> <वें शैली ="पाठ-संरेखण:केंद्र; चौड़ाई:52.653%;"> शुद्ध आभासी कार्य वें> | |
---|---|
वर्चुअल फंक्शन की अपनी परिभाषा कक्षा में होती है। | शुद्ध वर्चुअल फ़ंक्शन की कोई परिभाषा नहीं है। |
घोषणा:वर्चुअल funct_name(parameter_list) {. . . . .}; | घोषणा:आभासी funct_name(parameter_list)=0; |
इसमें व्युत्पन्न वर्ग की कोई अवधारणा नहीं है। | यदि किसी वर्ग में कम से कम एक शुद्ध वर्चुअल फ़ंक्शन होता है, तो उसे सार घोषित किया जाता है। |
यदि आवश्यक हो, तो बेस क्लास वर्चुअल फ़ंक्शन को ओवरराइड कर सकता है। | शुद्ध वर्चुअल फ़ंक्शन के मामले में व्युत्पन्न वर्ग को निश्चित रूप से शुद्ध वर्चुअल फ़ंक्शन को ओवरराइड करना होगा। |
वर्चुअल फ़ंक्शन
उदाहरण कोड
#include <iostream> using namespace std; class B { public: virtual void s() //virtual function { cout<<" In Base \n"; } }; class D: public B { public: void s() { cout<<"In Derived \n"; } }; int main(void) { D d; // An object of class D B *b= &d;// A pointer of type B* pointing to d b->s();// prints"D::s() called" return 0; }की ओर इशारा करता है
आउटपुट
In Derived
शुद्ध वर्चुअल फ़ंक्शन
उदाहरण कोड
#include<iostream> using namespace std; class B { public: virtual void s() = 0; // Pure Virtual Function }; class D:public B { public: void s() { cout << " Virtual Function in Derived class\n"; } }; int main() { B *b; D dobj; // An object of class D b = &dobj;// A pointer of type B* pointing to dobj b->s();// prints"D::s() called" }की ओर इशारा करता है
आउटपुट
Virtual Function in Derived class