मैं क्यूटी के लिए काफी नया हूं और स्मृति प्रबंधन और वस्तुओं के जीवन के साथ कुछ बुनियादी चीजों पर सोच रहा हूं। मुझे अपनी वस्तुओं को हटाने और / या नष्ट करने की आवश्यकता कब है? क्या इनमें से कोई भी स्वचालित रूप से नियंत्रित होता है?
नीचे दिए गए उदाहरण में, मैं किन वस्तुओं को बनाता हूं जिन्हें मुझे हटाने की आवश्यकता है? नष्ट myOtherClass
होने पर आवृत्ति चर का क्या होता है myClass
? यदि मैं अपनी वस्तुओं को नष्ट (या नष्ट) नहीं करता तो क्या होगा? क्या यह स्मृति के लिए एक समस्या होगी?
MyClass.h
class MyClass
{
public:
MyClass();
~MyClass();
MyOtherClass *myOtherClass;
};
MyClass.cpp
MyClass::MyClass() {
myOtherClass = new MyOtherClass();
MyOtherClass myOtherClass2;
QString myString = "Hello";
}
जैसा कि आप देख सकते हैं यह काफी नौसिखिया-आसान सामान है लेकिन मैं इस बारे में आसान तरीके से कहां सीख सकता हूं?
(It does this by issuing signals, so it is safe even when you delete child manually before the parent.)
-> यह सुरक्षित नहीं है यही कारण नहीं है। Qt 4.7.4 में, QObject बच्चों को सीधे हटा दिया जाता है (के माध्यम सेdelete
, qobject.cpp, लाइन 1955 देखें)। बाल वस्तुओं को हटाने के लिए सबसे पहले सुरक्षित होने का कारण यह है कि एक QObject अपने माता-पिता से कहता है कि इसे हटाए जाने पर इसे भूल जाएं।