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

सी ++ में शुद्ध आभासी विनाशक

सी ++ में शुद्ध आभासी विनाशक संभव है। यदि किसी वर्ग में शुद्ध आभासी विनाशक है तो उसे शुद्ध आभासी विनाशक के लिए एक कार्य निकाय प्रदान करना होगा।

उदाहरण कोड

#include <iostream>
using namespace std;

class B {
   public:
   virtual ~B()=0; // Pure virtual destructor
};

B::~B() {
   std::cout << "Pure virtual destructor is called";
}

class D : public B {
   public:
   ~D() {
      cout << "~D() is executed"<<endl;
   }
};

int main() {
   B *bptr=new D();
   delete bptr;
   return 0;
}

आउटपुट

~D() is executed
Pure virtual destructor is called

  1. C++ में इनलाइन वर्चुअल फंक्शन

    सी ++ में वर्चुअल फ़ंक्शन बेस क्लास पॉइंटर्स की सूची बनाने के लिए उपयोग करते हैं और किसी भी व्युत्पन्न वर्ग के कॉल विधियों को व्युत्पन्न क्लास ऑब्जेक्ट को जानने के बिना भी उपयोग करते हैं। वर्चुअल फ़ंक्शंस को रनटाइम पर देर से हल किया जाता है। वर्चुअल फ़ंक्शन का मुख्य उपयोग रनटाइम बहुरूपता प्राप्त कर

  1. सी ++ में शुद्ध कार्य

    शुद्ध फ़ंक्शन हमेशा समान तर्क मानों के लिए समान परिणाम लौटाते हैं। वे केवल परिणाम लौटाते हैं और तर्क संशोधन, I/O स्ट्रीम, आउटपुट पीढ़ी आदि जैसे कोई अतिरिक्त दुष्प्रभाव नहीं होते हैं। कुछ शुद्ध कार्य हैं sin(), strlen(), sqrt(), max(), pow(), floor() आदि। कुछ अशुद्ध कार्य रैंड (), समय() आदि हैं। कु

  1. सी ++ में वर्चुअल विनाशकों का उपयोग कब करें?

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