Я родом из довольно сильного C-фона, и у меня достаточно прочная основа в C ++. Совсем недавно я работал с C # и другими языками высокого уровня. Проект, над которым я сейчас работаю, может действительно выиграть от использования QT4, но у меня есть несколько вопросов по управлению памятью, которые я не могу понять. Я прочитал документацию по QT4, и она мне не сильно помогла. Вот почему я здесь.
1) Хорошо, для начала я понимаю, что самый простой способ использовать объекты QT4 - это объявить их локально:
void MyFunc()
{
QString foo;
// do stuff to foo
}
Это достаточно просто, я могу взять этот объект, передать его и знать, что, когда он выйдет из области видимости, он будет уничтожен. Но вот мой вопрос.
1) Если я создам QList и добавлю в него объекты, а затем QList выйдет из области видимости, попытается ли он освободить дочерние объекты?
2) Если подпрограмма QT4 возвращает указатель на объект, отвечаю ли я за отмену выделения этого объекта?
3) Если я создаю подкласс QWidget и добавляю его в QWindow, как мне обеспечить, чтобы при уничтожении QWindow мой виджет забирался с ним?
Спасибо за помощь.