प्योर वर्चुअल फंक्शन C++ में एक वर्चुअल फंक्शन है जिसके लिए हमें कोई फंक्शन डेफिनिशन लिखने की आवश्यकता नहीं है और केवल इसे डिक्लेयर करना है। इसे डिक्लेरेशन में 0 असाइन करके डिक्लेयर किया जाता है।
एक एब्स्ट्रैक्ट क्लास C++ में एक ऐसी क्लास है जिसमें कम से कम एक प्योर वर्चुअल फंक्शन होता है।
एब्स्ट्रैक्ट क्लास में नॉर्मल फंक्शन्स और वेरिएबल्स के साथ एक प्योर वर्चुअल फंक्शन हो सकता है।
एब्स्ट्रैक्ट क्लास को इंस्टेंटिएट नहीं किया जा सकता, लेकिन एब्स्ट्रैक्ट क्लास टाइप के पॉइंटर्स और रेफरेंस बनाए जा सकते हैं।
एब्स्ट्रैक्ट क्लासेस का उपयोग मुख्य रूप से अपकास्टिंग के लिए किया जाता है, ताकि इसकी डेराइव्ड क्लासेस इसके इंटरफेस का उपयोग कर सकें।
यदि एब्स्ट्रैक्ट क्लास की डेराइव्ड क्लास है, तो उन्हें सभी प्योर वर्चुअल फंक्शन्स को लागू करना होगा, अन्यथा वे भी एब्स्ट्रैक्ट बन जाएंगी।
हम एब्स्ट्रैक्ट क्लास का ऑब्जेक्ट नहीं बना सकते क्योंकि हम Vtable में प्योर वर्चुअल फंक्शन के लिए एक स्लॉट रिजर्व करते हैं, लेकिन कोई एड्रेस नहीं डालते, इसलिए Vtable अधूरा रहता है।
उदाहरण कोड
#include<iostream> using namespace std; class B { public: virtual void s() = 0; // प्योर वर्चुअल फंक्शन }; 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