Qt dosyasında, altyazılarına kompozisyonlar aracılığıyla alt öğeleri yerleştirebilir miyim, yoksa bunları new
ile mi oluşturmalıyım?Qt: Alt nesneler ana nesnesinde oluşturulabilir mi?
class MyWindow : public QMainWindow
{
...
private:
QPushButton myButton;
}
MyWindow::MyWindow()
: mybutton("Do Something", this)
{
...
}
belgeleri üst yok edilir QObject
türetilen herhangi bir nesnenin otomatik olarak imha edecektir olduğunu söyler; Bu, yukarıdaki örnekte çakışma olacak olan delete
numaralı çağrıya işaret eder.
Aşağıdakileri kullanmak zorunda mıyım?
- Evet, kompozisyon Tamam:
QPushButton* myButton; myButton = new QPushButton("Do Something", this);
DÜZENLEME
cevaplar üç olasılıktan aşağı kaynatın temelde oldukça çeşitlidir ve. ebeveyn aksi üzerinde
delete
çağırır beri Qt, nesne tahsis edildi anlamaya ve sadecedelete
yığın-tahsis nesneler (Bu nasıl çalışıyor?) - Evet, kompozisyon Tamam, ama bir ebeveyni belirtmeyen edebilirsiniz nesne (Ama bir üst düzey penceresine bir ebeveyn-az Widget dönüş? will not)
- Hayır daima widget'lardan yığın-tahsis olmak zorunda.
hangisi doğrudur?
Cevabınız neredeyse doğru, ancak Tahribatın sırası yanlış. Bakınız örn. http://msdn.microsoft.com/en-us/library/8183zf3x%28v=vs.100%29.aspx – hmuelner
@hmuelner Düzeltildi. – Oktalist