Russian Qt Forum
Ноябрь 25, 2024, 12:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сборка мусора в qt[solved]  (Прочитано 4291 раз)
semlanik
Гость
« : Февраль 16, 2010, 16:20 »

Не очень понял, прочел немного майллистов и литры и так и не понял,а как он вообще работает или работает ли вообще. Приведу пример, рассудите прав я или нет:

Код
C++ (Qt)
class Main : public QObject
{
   void someObject()
  {
      Slave *xObj=new Slave(); // inherit QObject
  }
}
 
int main(int argc, char *argv[])
{
   Main *mainObj=new Main;
   for(i=0; i<100; i++)
   {
       mainObj.someObject();
   }
   //here we have 100 copies Salve objects
 
   delete mainObj;
   //here we still have 100 copies Salve objects
 
   return 0;
}
 

но если переделать метод вот так:

Код
C++ (Qt)
class Main : public QObject
{
   void someObject()
  {
      Slave *xObj=new Slave(this); // inherit QObject and have constructor Slave(QObject *parent)
  }
}
 
int main(int argc, char *argv[])
{
   Main *mainObj=new Main;
   for(i=0; i<100; i++)
   {
       mainObj.someObject();
   }
   //here we have 100 copies Salve objects
 
   delete mainObj;
   //all copies was cleaned
 
   return 0;
}

если я абсолютно не прав скажите где можно почитать
« Последнее редактирование: Февраль 16, 2010, 16:43 от semlanik » Записан
MoPDoBoPoT
Гость
« Ответ #1 : Февраль 16, 2010, 16:36 »

Все верно.
Только это не "сборка мусора" (как в Java, например). Это механизм объединения объектов в иерархические структуры, одной из задач которого является снятие забот об освобождении памяти создаваемых объектов с разработчика.
Записан
semlanik
Гость
« Ответ #2 : Февраль 16, 2010, 16:43 »

Спасибо просто в мэйл листах некоторые бьют себя кулаком и говорят что у qt сборщик мусора есть ) Ну это своеобразная реализация оного ) в общем в принципе для себя уяснил. спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.164 секунд. Запросов: 20.