আমি কিউটিতে বেশ নতুন এবং মেমরির পরিচালনা এবং অবজেক্টের জীবন নিয়ে কিছু বেসিক স্টাফ নিয়ে ভাবছি। কখন আমার জিনিসগুলি মুছতে এবং / বা ধ্বংস করতে হবে? এর কোনটি কি স্বয়ংক্রিয়ভাবে পরিচালিত হয়?
নীচের উদাহরণে, আমি তৈরি করা কোন বস্তুটি মুছতে হবে? উদাহরণটি পরিবর্তনশীলটির ধ্বংস হয়ে myOtherClass
গেলে কী ঘটে myClass
? আমি যদি আমার জিনিসগুলি একেবারে মুছে (বা ধ্বংস না করি) তবে কী হবে? স্মৃতিতে কি সমস্যা হবে?
মাইক্লাস
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 এ, কিউবজেক্ট শিশুরা সরাসরি মুছে ফেলা হবে (মাধ্যমেdelete
, qobject.cpp, 1955 লাইনটি দেখুন)। শিশুদের অবজেক্টগুলি মুছে ফেলা নিরাপদ হওয়ার কারণটি হ'ল কোনও কিউবজেক্ট মুছে ফেলা হলে তার পিতামাতাকে এটি ভুলে যেতে বলে।