Название: Уничтожение объектов Отправлено: FreeSlave от Июль 30, 2011, 17:20 Насколько я понимаю, QGraphicsScene сама ответственная за уничтожение объекта, но у меня тут такая тема, в общем сами смотрите:
Код
arr - это Hexagon***, в данном случае используется как двумерный массив указателей. Вопрос: сможет ли сцена удалить объекты по указателям, если я удалю сами указатели? Хмм, хотя сейчас подумал, при посылке в функцию указатели ведь копируются, т.е. если я удалю первоисточник, указатели на те же объекты всё равно останутся. Но уверенности всё равно не хватает. Название: Re: Уничтожение объектов Отправлено: kambala от Июль 30, 2011, 18:42 удивительно как у тебя код скомпилировался - выделение памяти совершенно неправильное. я так понимаю у тебя там "строки строк" указателей на Hexagon - Hexagon ***arr.
Код ещё для простоты можно пользоваться вектором или списком. а сцена - да, сама поудаляет добавленные на неё объекты. Название: Re: Уничтожение объектов Отправлено: FreeSlave от Июль 30, 2011, 19:19 выделение памяти совершенно неправильное. Что здесь неправильного? Стандартное создание двумерного массива. Только у меня это двумерный массив из указателей, отсюда и ***. Хмм, а в посте и правда неправильно. Не знаю, как сюда копируется, но в коде всё путём. А понял, просто [ i ] за тэг посчиталось. Название: Re: Уничтожение объектов Отправлено: FreeSlave от Июль 30, 2011, 19:28 Заключил в тэг [ code ], теперь нормально.
Название: Re: Уничтожение объектов Отправлено: FreeSlave от Июль 30, 2011, 21:49 Скажите, а могу ли я быть уверен, что адреса объектов не изменятся в ходе работы сцены?
Название: Re: Уничтожение объектов Отправлено: Igors от Июль 31, 2011, 00:23 Две и более звездочек очень затрудняют понимание (в том числе и для пишущего). В таких случая хорошо помогает typedef, напр.
Код
И еще: конечно дело Ваше как писать, но сильно "прессовать" текст не стоит напр Код
Код
Название: Re: Уничтожение объектов Отправлено: GreatSnake от Август 01, 2011, 10:16 Цитировать Вопрос: сможет ли сцена удалить объекты по указателям, если я удалю сами указатели? Всё делаешь верно. После QGraphicsScene::addItem() элемент становится "собственностью" сцены. |