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

C++ में shared_ptr का उपयोग करके वर्चुअल डिस्ट्रक्शन


इस ट्यूटोरियल में, हम C++ में shared_ptr का उपयोग करके वर्चुअल डिस्ट्रक्शन को समझने वाले प्रोग्राम पर चर्चा करेंगे।

किसी क्लास के इंस्टेंस को डिलीट करने के लिए, हम बेस क्लास के डिस्ट्रक्टर को वर्चुअल परिभाषित करते हैं। इसलिए यह विभिन्न ऑब्जेक्ट इंस्टेंस को उस क्रम के विपरीत क्रम में डिलीट करता है जिसमें वे बनाए गए थे।

उदाहरण

#include <iostream> #include <memory> using namespace std; class Base {    public:    Base(){       cout << "Constructing Base" << endl;    }    ~Base(){       cout << "Destructing Base" << endl;    } }; class Derived : public Base {    public:    Derived(){       cout << "Constructing Derived" << endl;    }    ~Derived(){       cout << "Destructing Derived" << endl;    } }; int main(){    std::shared_ptr<Base> sp{ new Derived };    return 0; }

आउटपुट

Constructing Base Constructing Derived Destructing Derived Destructing Base

  1. - C++ में रिपीटेड यूनिट डिविजिबिलिटी

    इस लेख में, हम N से विभाज्य रिपीटेड यूनिट्स की संख्या ढूंढने पर चर्चा करेंगे। रिपीटेड यूनिट्स केवल 1 के दोहराव वाले नंबर हैं, मान लीजिए R(k) वह रिपीटेड यूनिट है जहां k 1 की लंबाई है। जैसे R(4) = 1111। इसलिए हमें k का न्यूनतम मान ढूंढना है जिसके लिए R(k) N से विभाज्य है, उदाहरण के लिए −Input :

  1. C++ में आधार B में N! के प्रतिनिधित्व में अनुगामी शून्यों की संख्या C++ में आधार B में N! के प्रतिनिधित्व में अनुगामी शून्यों की संख्या

    इस लेख में, हम किसी दी गई संख्या N के फैक्टोरियल के आधार B प्रतिनिधित्व में अनुगामी शून्यों को खोजने की समस्या को समझेंगे। उदाहरण के लिएइनपुट: N = 7 आधार = 2 आउटपुट: 4 व्याख्या: fact(7) = 5040 बेस10 में और 1001110110000 बेस16 में जिसमें 4 अनुगामी शून्य हैं। इनपुट: N = 11 आधार = 5 आउटपुट: 2 व्याख्या:

  1. C++ में आधार 16 में N! के प्रतिनिधित्व में अनुगामी शून्यों की संख्या C++ में आधार 16 में N! के प्रतिनिधित्व में अनुगामी शून्यों की संख्या

    इस लेख में, हम किसी दी गई संख्या N के फैक्टोरियल के आधार 16 प्रतिनिधित्व में अनुगामी शून्यों को खोजने की समस्या को समझेंगे, उदाहरण के लिएइनपुट: N = 7 आउटपुट: 1 व्याख्या: fact(7) = 5040 बेस10 में और 13B0 बेस16 में जिसमें 1 अनुगामी शून्य है। इनपुट: N = 11 आउटपुट: 2 व्याख्या: fact(11) = 39916800 बेस10