पारंपरिक रूप से, सी ++ में, आप कन्स्ट्रक्टर में कोई निर्भरता बनाएंगे और उन्हें विनाशक में हटा देंगे।कन्स्ट्रक्टर में बनाने के लिए पैटर्न का नाम, विनाशक (सी ++)
class A
{
public:
A() { m_b = new B(); }
~A() { delete m_b; }
private:
B* m_b;
};
संसाधन अधिग्रहण की यह तकनीक/पैटर्न, क्या इसका एक आम नाम है?
मुझे पूरा यकीन है कि मैंने इसे कहीं पढ़ा है लेकिन अब इसे नहीं मिला।
संपादित करें:
जैसा कि कई ने इंगित किया है, यह वर्ग अपूर्ण है और वास्तव में एक प्रतिलिपि निर्माता और असाइनमेंट ऑपरेटर को कार्यान्वित करना चाहिए।
मूल रूप से, मैंने जानबूझकर इसे छोड़ दिया क्योंकि यह वास्तविक प्रश्न के लिए प्रासंगिक नहीं था: पैटर्न का नाम। हालांकि, पूर्णता के लिए और अच्छे प्रथाओं को प्रोत्साहित करने के लिए, स्वीकृत उत्तर यह है कि यह क्या है।
खराब वर्ग ए कॉपी कन्स्ट्रक्टर और असाइनमेंट ऑपरेटर गायब हैं। –
यदि कॉपी/असाइनमेंट की आवश्यकता नहीं है तो एक आसान समाधान बूस्ट :: noncopyable से प्राप्त करना है। आपको उन दो कार्यों को परिभाषित करने के लिए बचाता है। (और यह सुनिश्चित करता है कि उन्हें गलती से बुलाया नहीं गया है) – jalf