Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

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


निम्नलिखित तालिका वर्चुअल और प्योर वर्चुअल फंक्शन के बीच अंतर दिखाती है:

वर्चुअल फंक्शन
प्योर वर्चुअल फंक्शन
वर्चुअल फंक्शन की क्लास में उनकी परिभाषा होती है।
प्योर वर्चुअल फंक्शन की कोई परिभाषा नहीं होती।
डिक्लेरेशन: virtual funct_name(parameter_list) {. . . . .};
डिक्लेरेशन: virtual funct_name(parameter_list)=0;
इसमें डेराइव्ड क्लास की कोई अवधारणा नहीं है।
यदि किसी क्लास में कम से कम एक प्योर वर्चुअल फंक्शन है, तो इसे एब्स्ट्रैक्ट घोषित किया जाता है।
यदि आवश्यक हो, तो बेस क्लास वर्चुअल फंक्शन को ओवरराइड कर सकती है।
प्योर वर्चुअल फंक्शन के मामले में डेराइव्ड क्लास को निश्चित रूप से प्योर वर्चुअल फंक्शन को ओवरराइड करना होगा।

वर्चुअल फंक्शन

उदाहरण कोड

#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;// B* टाइप का एक पॉइंटर जो d की ओर इशारा करता है    b->s();// prints"D::s() called"    return 0; }

आउटपुट

In Derived

प्योर वर्चुअल फंक्शन

उदाहरण कोड

#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; // क्लास D का एक ऑब्जेक्ट    b = &dobj;// B* टाइप का एक पॉइंटर जो dobj की ओर इशारा करता है    b->s();// prints"D::s() called" }

आउटपुट

Virtual Function in Derived class

  1. - C++ प्रोग्राम में 'struct' और 'typedef struct' में अंतर

    मूल रूप से struct का उपयोग एक संरचना को परिभाषित करने के लिए किया जाता है। लेकिन जब हम इसका उपयोग करना चाहते हैं तो हमें C में struct कीवर्ड का उपयोग करना होता है। यदि हम typedef कीवर्ड का उपयोग करते हैं, तो एक नया नाम, हम उस नाम से struct का उपयोग कर सकते हैं, बिना struct कीवर्ड लिखे। C++ में, str

  1. - C++ में new ऑपरेटर और operator new में क्या अंतर है?

    C++ में जब हम एक नया ऑब्जेक्ट बनाना चाहते हैं, तो हमें मेमोरी में एक मेमोरी ब्लॉक बनाना होगा, फिर उस मेमोरी ब्लॉक को आरंभ करने के लिए कंस्ट्रक्टर को भी कॉल करना होगा। हम new कीवर्ड का उपयोग करके मेमोरी एलिमेंट बना सकते हैं। यह new ऑपरेटर दो लगातार कार्य करता है। लेकिन operator new केवल मेमोरी स्पेस

  1. - C# में Method और Function में अंतर

    C# में Methods और Functions Same हैं।हालांकि, Methods C# में उपयोग किए जाते हैं और वे Functions होते हैं जो Designated Class के माध्यम से Operate करते हैं। एक Method, Statements का Group होता है जो मिलकर एक Task Perform करता है। हर C# Program में कम से कम एक Class होती है जिसमें Main नाम की Method ह