एक शुद्ध वर्चुअल फ़ंक्शन C++ में एक वर्चुअल फ़ंक्शन है जिसके लिए हमें कोई फ़ंक्शन परिभाषा लिखने की आवश्यकता नहीं है और केवल हमें इसे घोषित करना है। इसे डिक्लेरेशन में 0 असाइन करके घोषित किया जाता है।
एक अमूर्त वर्ग C++ में एक वर्ग है जिसमें कम से कम एक शुद्ध आभासी कार्य होता है।
-
एब्सट्रैक्ट क्लास में शुद्ध वर्चुअल फंक्शन के साथ-साथ सामान्य फंक्शन और वेरिएबल भी हो सकते हैं।
-
एब्सट्रैक्ट क्लास को इंस्टेंट नहीं किया जा सकता है, लेकिन एब्सट्रैक्ट क्लास टाइप के पॉइंटर्स और रेफरेंस बनाए जा सकते हैं।
-
सार वर्ग मुख्य रूप से अपकास्टिंग के लिए उपयोग किए जाते हैं, ताकि इसकी व्युत्पन्न कक्षाएं इसके इंटरफ़ेस का उपयोग कर सकें।
-
यदि एक एब्सट्रैक्ट क्लास ने क्लास व्युत्पन्न की है, तो उन्हें सभी शुद्ध वर्चुअल फ़ंक्शंस को लागू करना होगा, अन्यथा वे एब्सट्रैक्ट भी बन जाएंगे।
-
हम अमूर्त वर्ग का ऑब्जेक्ट नहीं बना सकते क्योंकि हम Vtable में एक शुद्ध वर्चुअल फ़ंक्शन के लिए एक स्लॉट आरक्षित करते हैं, लेकिन हम कोई पता नहीं डालते हैं, इसलिए Vtable अधूरा रहेगा।
उदाहरण कोड
#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; b = &dobj; b->s(); }
आउटपुट
Virtual Function in Derived class