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

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

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

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

  1. सी++ प्रोग्राम में 'स्ट्रक्चर' और 'टाइपपीफ स्ट्रक्चर' के बीच अंतर?

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

  1. सी ++ में नए ऑपरेटर और ऑपरेटर के बीच अंतर?

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

  1. सी # में विधि और कार्य के बीच अंतर

    C# में तरीके और कार्य समान हैं। हालाँकि, विधियों का उपयोग C# में किया जाता है और वे कार्य होते हैं जो एक निर्दिष्ट वर्ग के माध्यम से संचालित होते हैं। एक विधि बयानों का एक समूह है जो एक साथ एक कार्य करता है। प्रत्येक C# प्रोग्राम में मुख्य नाम की विधि के साथ कम से कम एक वर्ग होता है। निम्नलिखित एक