Автор Тема: Начинающим  (Прочитано 34840 раз)

Оффлайн wRAR

  • Завсегдатай
  • *
  • Сообщений: 469
Re: Начинающим
« Ответ #30 : 26.09.2008 11:21:31 »
В QT4 нет сборщика мусора, если Вы об этом. Вам надо удалять только те объекты, которые высоздали непосредственно при помощи оператора new. (Думаю, что в доке нет ответа, потому что изменений по сравнению с С++ считай что нет в этом плане)
Это не так. Про удаление детей при удалении родителя было даже в исходном вопросе.

Оффлайн SKeeper

  • Завсегдатай
  • *
  • Сообщений: 75
Re: Начинающим
« Ответ #31 : 26.09.2008 11:43:58 »
В QT4 нет сборщика мусора, если Вы об этом. Вам надо удалять только те объекты, которые высоздали непосредственно при помощи оператора new. (Думаю, что в доке нет ответа, потому что изменений по сравнению с С++ считай что нет в этом плане)
Это не так. Про удаление детей при удалении родителя было даже в исходном вопросе.

Что именно не так?

ЗЫ: Наличие в исходном вопросе частички ответа прошляпил, каюсь ))

Оффлайн wRAR

  • Завсегдатай
  • *
  • Сообщений: 469
Re: Начинающим
« Ответ #32 : 26.09.2008 12:14:15 »
Что именно не так?
Что нет изменений.

Оффлайн SKeeper

  • Завсегдатай
  • *
  • Сообщений: 75
Re: Начинающим
« Ответ #33 : 26.09.2008 13:17:17 »
Что именно не так?
Что нет изменений.

Я написал "считай что нету" имея в виду по сравнению скажем с Java или C#. Ну и это было мое ИМХО о том, почему тролли не поместили статью об этом в тот же qt-assistant (по крайней мере поиск по "memory management" ничего не дал).
Об удаление child-объектов написано, например, в описание QObject, но тролли не выделили это в отдельный пункт. Управление памятью как бы обойдено стороной, как будто "изменений считай что нету".

ЗЫ: Это мое ИМХО и я рад был бы увидеть более подробный перечень изменений в управление памятью в QT4.

Оффлайн klark973

  • Завсегдатай
  • *
  • Сообщений: 662
  • Неспящий саппорт
Re: Начинающим
« Ответ #34 : 26.09.2008 14:50:14 »
В QT4 нет сборщика мусора, если Вы об этом. Вам надо удалять только те объекты, которые вы создали непосредственно при помощи оператора new. (Думаю, что в доке нет ответа, потому что изменений по сравнению с С++ считай что нет в этом плане)
Мысль уловил. Но из того, что уже успел прочитать, очевидно следующее. Я контролирую (либо сам компилятор) только первый создаваемый в коде объект. Я забочусь (или сам компилятор) о его удалении. Как вариант, use QPointer. Внутренние объекты (contained) я ДОЛЖЕН создавать ТОЛЬКО В КУЧЕ (через new) и не думать об их удалении, потому что об этом заботится сама Qt. При этом, ссылаться на них я ДОЛЖЕН ТОЛЬКО по указателю.

Эта схема подразумевает, что и родительский, и все дочерние объекты должны быть наследниками QObject. Я пробовал писать и правильно, и неправильно, но в обеих случаях код не приводил к краху, хотя во втором случае, например, происходила попытка дважды удалить объект и вызвать его деструктор, первый раз - в Qt. Потому и задался вопросом...

Однако это не единственно возможная схема. До этого ещё не дошёл, но например в Qt3 была возможность работы с контейнерами указателей, где хоть и была схожая идеология, можно было изменять поведение по умолчанию и самому управлять памятью. Есть график иерархии, возможно ещё о каких-нть схемах придётся узнать.

Qt Assistant содержит точную копию HTML-описаний, имеющихся на сайте троллей. Соответственно, есть сайты с русским переводом и даже скачал вариант, заменяющий не малую часть описаний, переведённых поверх оригиналов. Действительно, специального раздела по управлению памятью в Qt я пока тоже не нашёл. Есть несколько слов об этом лишь в описании объектной модели.
To moan or to solve -- that is the question!

Оффлайн NayZaK

  • Начинающий
  • *
  • Сообщений: 15
  • ALT Linux Sisyphus
    • Email
Re: Начинающим
« Ответ #35 : 26.09.2008 17:24:18 »
Внесу свою лепту в обсуждение:)
Очень удобная среда разработки - NetBeans. Для разработки java лучшей IDE не найти. На C тоже можно писать спокойно.
If it's not in the computer? it does not exist;)

kda

  • Гость
Re: Начинающим
« Ответ #36 : 29.09.2008 13:11:50 »
Внесу свою лепту в обсуждение:)
Очень удобная среда разработки - NetBeans. Для разработки java лучшей IDE не найти. На C тоже можно писать спокойно.

Ну почему же. Есть Eclipse, есть jEdit, для труЪ есть Emacs. У каждого свои преимущества. И все программы свободны.

Оффлайн icesik

  • alt linux team
  • ***
  • Сообщений: 23
    • Email
Re: Начинающим
« Ответ #37 : 01.10.2008 18:24:32 »
Я под этим понятием пока еще ничего не понимаю, поэтому у вас есть возможность направить меня в нужное русло.

Тогда опять повторю совет "The Art of Unix Programming". Вроде бы kas утверждает, что есть русский перевод, но мне его найти не удалось (только часть первой главы).

Я видел в бумажном виде в одной из магазинов в г.Донецк. По достаточно вменяемой цене. Примерно 6$.

"Advanced programming in UNIX environment" бывает русский, но его надо искать. У меня под руками только бумажный английский вариант (читается шикарно, кстати - очень простой язык).

У меня в бумаге на русском языке (второе издание). Только стоит дорого. Брал mike@ в Киеве. В своём городе я так и не нашёл.

Оффлайн icesik

  • alt linux team
  • ***
  • Сообщений: 23
    • Email
Re: Начинающим
« Ответ #38 : 01.10.2008 18:33:53 »
Ещё есть такая полезная книжка autobook. Описывает automake, autoconf и libtool. Без чтения её, очень тяжело лазить в autotool-based проекты.

Оффлайн swi

  • alt linux team
  • ***
  • Сообщений: 67
    • "Риком-Траст"
    • Email
Re: Начинающим
« Ответ #39 : 02.10.2008 11:09:55 »
Я написал "считай что нету" имея в виду по сравнению скажем с Java или C#.
Зачем вы пытаетесь сравнивать библиотеку и языки?

Оффлайн swi

  • alt linux team
  • ***
  • Сообщений: 67
    • "Риком-Траст"
    • Email
Re: Начинающим
« Ответ #40 : 02.10.2008 11:10:56 »
Внесу свою лепту в обсуждение:)
Очень удобная среда разработки - NetBeans. Для разработки java лучшей IDE не найти. На C тоже можно писать спокойно.
Хорошая среда да...  эклипса правда не многим хуже.. жаль что обе тормозные жутко.

Оффлайн Respect

  • Завсегдатай
  • *
  • Сообщений: 127
  • студент
Re: Начинающим
« Ответ #41 : 02.10.2008 14:55:59 »
Ещё есть такая полезная книжка autobook. Описывает automake, autoconf и libtool. Без чтения её, очень тяжело лазить в autotool-based проекты.
Ссылка не работает.
ALT Linux Lite 4.0.3

Оффлайн dottedmag

  • /usr/sbin/control
  • *******
  • Сообщений: 235
Re: Начинающим
« Ответ #42 : 02.10.2008 17:09:19 »
Никто не мешает навешать "сверху" монолитный GUI.
Debian Lenny

Оффлайн dottedmag

  • /usr/sbin/control
  • *******
  • Сообщений: 235
Re: Начинающим
« Ответ #43 : 02.10.2008 18:31:29 »
"навешать "сверху" монолитный GUI"==собрать статически гуй и все остальное с (почти)всеми зависимостями в один бинарник. Так?

Нет.
Debian Lenny

Оффлайн icesik

  • alt linux team
  • ***
  • Сообщений: 23
    • Email
Re: Начинающим
« Ответ #44 : 06.10.2008 11:51:41 »
Ещё есть такая полезная книжка autobook. Описывает automake, autoconf и libtool. Без чтения её, очень тяжело лазить в autotool-based проекты.
Ссылка не работает.

Попытка номер два -- http://sources.redhat.com/autobook/