Qt bellek yönetimi?
Qt için oldukça yeniyim ve bellek yönetimi ve nesneleri hayatı ile ilgili bazı temel şeyleri merak ediyorum. Ne zaman silmek ya da benim/nesneleri yok etmek gerekir mi? Bu herhangi bir otomatik olarak gerçekleştirilir?
Bu örnekte, nesneleri oluşturmak silmek gerekiyor mu? Sınıfım yok edilir örnek değişken myOtherClass ne olacak? Eğer silmek ve ya benim nesne yok; bellek için bir sorun olacak/bilmiyorum eğer doğru değilse ne olur?
Sınıfım.h
class MyClass
{
public:
MyClass();
~MyClass();
MyOtherClass *myOtherClass;
};
MyClass.cpp
MyClass::MyClass() {
myOtherClass = new MyOtherClass();
MyOtherClass myOtherClass2;
QString myString = "Hello";
}
Bu ama nerede kolay bir şekilde öğrenebilir miyim? bir şeyler acemi-oldukça kolay gördüğünüz gibi
CEVAP
EÄŸer QObjects ile kendi hiyerarÅŸi oluÅŸturmak, yani yeni bir ebeveyn ile QObjects oluÅŸturulmuÅŸ, yeniden
QObject* parent = new QObject();
QObject* child = new QObject(parent);
sonra parents yıkıcı child yok ilgilenir çünkü delete parent yeterlidir. (Sinyalleri göndererek yapar, el ile üst önce child bile silmek güvenlidir.)
Ayrıca çocuk sıralaması önemli değil ilk, silinemedi. Sipariş bir örnekyokkonu burada the documentation about object trees.
Eğer MyClass QObject bir çocuk değil şeyler yapıyor düz C şekilde kullanman gerekecek.
Ayrıca, QObjects üst–alt hiyerarşisi C sınıfı hiyerarşisi/devralma ağaç hiyerarşisi genellikle bağımsız olduğunu unutmayın. Bu, anlamına geliratanmış bir çocuğun ebeveyni doğrudan bir alt sınıf olması gerekmez. QObject yeterli olacaktır.
Olabilir, bazı kısıtlamalar ile kurucular için başka nedenler de var, ancak; gibi QWidget(QWidget* parent=0) nereye üst olmalı başka bir QWidget nedeniyle örneğin görünürlük bayraklar ve çünkü sen yaptın bazı temel düzeni böyle; ama Qt hiyerarşi sistemi genel olarak, izin için herhangi QObject olarak bir üst.

Linux bellek yönetimi ve VSZ RSS nedir...
Genel bellek yönetimi C yığın veya yığ...
Qt bellek yönetimi?...
Nasıl bellek hextile/altıgen bir ızgar...
'bir bellek yetersiz atmak yok Ou...