crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Удаление объектов класса.
Trisch
  опции профиля:
сообщение 10.12.2012, 14:29
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

Спасибо сказали: 24 раз(а)




Репутация:   0  


К примеру есть функция в которой создается объект некого класса, к примеру:

...
void Test()
{
    testClass = new TestClass()
}
...


Эта функция может вызываться N раз, в этого у получается N объектов некого класса.

Как, потом, эти объекты все разом удалить?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 10.12.2012, 14:42
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Сделать глобальный список этих объектов:
std::list<TestClass*> g_list;
// ...
void Test()
{
   testClass = new TestClass()
   g_list.push_back( testClass );
}
После чего в какаом-то месте этот g_list очищай, а лучше создай класс, вроде этого:
class CTest
{
  std::list<TestClass*> m_list;

public:
  void Test()
  {
     testClass = new TestClass()
     m_list.push_back( testClass );
  }
};
и пользовать его...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sidsukana
  опции профиля:
сообщение 10.12.2012, 14:43
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 158
Регистрация: 23.12.2010
Из: Челябинск
Пользователь №: 2296

Спасибо сказали: 10 раз(а)




Репутация:   2  


Хранить в глобальном контейнере каждый новый объект.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 10.12.2012, 15:02
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


лучше уж в статическом чем в глобальном. А вообще смотря какая задача - может быть что лучше в мембере класса
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 10.12.2012, 16:28
Сообщение #5


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


как вариант: использовать умные указатели и объекты сами удалятся, когда их никто не будет использовать.
в частности, shared_ptr в стандарте С++11, или его библиотечные реализации в любой библиотеке.

Сообщение отредактировал Iron Bug - 10.12.2012, 16:33
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.4.2024, 17:00