Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как удалить из памяти объект / 18 сообщений из 18, страница 1 из 1
11.06.2004, 14:16
    #32558197
Пиликалка
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
//Вот мы создали объект:
CDaoDatabase cDaoDB;

//Проинициализировали
cDaoDB.Open(DataBasePath);

........


//Вот мы его закрыли
cDaoDB.Close();

А вот как его убить, непонятно ????????
...
Рейтинг: 0 / 0
11.06.2004, 14:44
    #32558269
Sergey D.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
автор

хм... а зачем? Ну сделай его равного NULL
...
Рейтинг: 0 / 0
11.06.2004, 14:59
    #32558309
Пиликалка
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
Скорей всего это он память жрет у меня,
щас попробую NULL приравнять ......
...
Рейтинг: 0 / 0
11.06.2004, 15:05
    #32558326
Пиликалка
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
Нет NULL присвоить нельзя

cDaoDB=NULL;


генерится ошибка

error C2582: 'CDaoDatabase' : 'operator =' function is unavailable
...
Рейтинг: 0 / 0
11.06.2004, 15:40
    #32558433
ZrenBy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
Пиликалка
А вот как его убить, непонятно ????????

Код: plaintext
1.
2.
3.
4.
5.
{
  CDaoDatabase cDaoDB;
  cDaoDB.Open(DataBasePath);
  . . . 
  cDaoDB.Close();
}
...
Рейтинг: 0 / 0
11.06.2004, 16:34
    #32558595
Sergey D.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
Ты ему сделал Close и хватит с него.

WBR, Sergey
...
Рейтинг: 0 / 0
11.06.2004, 16:54
    #32558646
Пиликалка
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
У меня кто то память из этого места гонит,
может хто то другой .... ХМ
...
Рейтинг: 0 / 0
11.06.2004, 20:36
    #32558991
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
2Пиликалка
--CDaoDatabase cDaoDB;
он же в стеке выделился. его убивать ни в коем случае нельзя руками
...
Рейтинг: 0 / 0
13.06.2004, 11:30
    #32559635
gamych
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
Пиликалка//Вот мы создали объект:
CDaoDatabase cDaoDB;

//Проинициализировали
cDaoDB.Open(DataBasePath);

........


//Вот мы его закрыли
cDaoDB.Close();

А вот как его убить, непонятно ????????

А что, new/delete уже отменили?
...
Рейтинг: 0 / 0
14.06.2004, 11:10
    #32560105
viper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
Странно что без new/delete оно вообще работает....
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
14.06.2004, 12:17
    #32560167
Basilisk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
В случае
Код: plaintext
1.
2.
3.
4.
5.
6.
{
  CDaoDatabase cDaoDB;
  cDaoDB.Open(DataBasePath);
  . . . 
  cDaoDB.Close();
}
Удалятся должен авто - по выходу из блока {}

Можно исп new/delete
Код: plaintext
1.
2.
3.
4.
5.
  CDaoDatabase pDaoDB = new CDaoDatabase();
  pDaoDB->Open(DataBasePath);
  . . . 
  pDaoDB->Close();
  delete pDaoDB;
...
Рейтинг: 0 / 0
14.06.2004, 13:56
    #32560302
viper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
Спорить конечно не буду, но я бы не особо полагался на доброго дядю который это уберет.
{
CDaoDatabase cDaoDB;

cDaoDB.Open(DataBasePath);
. . .
cDaoDB.Close();
}

cDaoDB - переменная ссылочного типа, а значит хоть стреляйся для ее была выделена память...
После выхода из блока пропадет переменная, но выделенная память останеться... С++ на то и С++, программист несет ответственность за выделение/освобождение памяти... и делать это желательно в явном виде
Close() не уничтожает объект (MSDN):
Код: plaintext
1.
It is good practice to close these objects yourself before you call this member function. Closing a CDaoDatabase object removes it from the Databases collection in the associated workspace. Because Close does not destroy the CDaoDatabase object, you can reuse the object by opening the same database or a different database.


_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
14.06.2004, 16:23
    #32560464
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
Странная полемика. Если объект создается в программном стеке
{
Object z;
...............
}
то он будет удален автоматически при выходе из блока, в котором он объявлен.
Если он вне какого - либо блока (функции), то он буде существовать всегда.
Если он создается в куче
Object *z= new Object;
то его нужно уничтожить ручками
delete z;
...
Рейтинг: 0 / 0
14.06.2004, 17:19
    #32560526
Basilisk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
viper
viperСпорить конечно не буду, но я бы не особо полагался на доброго дядю который это уберет.
{
CDaoDatabase cDaoDB;

cDaoDB.Open(DataBasePath);
. . .
cDaoDB.Close();
}

cDaoDB - переменная ссылочного типа, а значит хоть стреляйся для ее была
[/src]cDaoDB - переменная типа CDaoDatabase, а вовсе не ссылочного



_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
14.06.2004, 17:21
    #32560529
Basilisk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
viperСпорить конечно не буду, но я бы не особо полагался на доброго дядю который это уберет.
{
CDaoDatabase cDaoDB;

cDaoDB.Open(DataBasePath);
. . .
cDaoDB.Close();
}
[/src]cDaoDB - переменная ссылочного типа, а значит хоть стреляйся для ее была

cDaoDB - переменная типа CDaoDatabase, а вовсе не ссылочного
...
Рейтинг: 0 / 0
14.06.2004, 18:30
    #32560622
viper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
Тогда сорри... временное помутнение разума... С шарпами перепутал.
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
15.06.2004, 09:50
    #32561011
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
Парни, я плакаль...

Пиликалка

У вас cDaoDB - локальный объект, находящийся в стеке! Он будет автоматически удален как только выйдет за пределы области действия!
...
Рейтинг: 0 / 0
15.06.2004, 12:38
    #32561377
viper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из памяти объект
Типичный пример дискусии на ровном месте. Признаю, я ступил. Ну, главное, что истина востановлена. :)
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как удалить из памяти объект / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]