क्या NULL पॉइंटर को हटाना सुरक्षित है?
और क्या यह एक अच्छी कोडिंग शैली है?
make_shared(c ++ 11) और make_unique(c ++ 14) आपके प्रोग्राम में शून्य का होना चाहिए newऔरdelete
newया नहीं होना चाहिए delete। संसाधनों को प्रबंधित करने के लिए डिज़ाइन की गई कक्षाएं, जहां मानक घटक नौकरी नहीं कर सकते, बेशक वे क्या करने की आवश्यकता है, लेकिन मुद्दा यह है कि वे स्मृति के साथ बदसूरत सामान का प्रबंधन करते हैं, न कि अंत-उपयोगकर्ता कोड। इसलिए, अपनी खुद की लाइब्रेरी / हेल्पर क्लास करें new/ करें delete, और उनके बजाय उस क्लास का उपयोग करें।
delete। इसकी जगह RAII का इस्तेमाल करें । अर्थात्,std::vector<T> v(100);इसके बजाय काT* p = new T[100];उपयोग करें, जैसे स्मार्ट पॉइंटर्स का उपयोग करेंunique_ptr<T>और जैसेshared_ptr<T>कि कच्चे पॉइंटर्स आदि के बजाय विलोपन का ध्यान