![]() |
|
Модераторы: Daevaorn |
![]()
|
|
||
|
|
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
Приходилось ли Вам перегружать операторы управления памятью?
И зачем Это сообщение отредактировал(а) chaos - 5.10.2005, 05:46 |
|||
|
||||
| Neitron |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
Не знаю как можно перегрузить delete, но перегружать new приходица часто.
А зачем? ответ прост. Посмотри хотя бы на класс AnsiString в Builder и поймешь для чего можно перегружать. Если я правильно понел речь идет о new Class(...,...,...); Это сообщение отредактировал(а) Neitron - 5.10.2005, 09:09 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
На практике (хотя какая нафик у меня практика) нет. В теории можно представить код для детекции memory leakов. Ну типа
(разумеется это не совсем с++, но идея думаю ясна(не бейте за издевательство над языком Это сообщение отредактировал(а) Mayk - 5.10.2005, 09:25 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| Neitron |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
Ох класс)) Точняк, не догодался
-------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
Не перегружал и наверное не буду... ЗЫ не путать с не знаю и знать не хочу.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Когда-то давно, еще под Досом (Борланд С++ 3.1) писала аллокатор для мелких объектов. По-моему, на rsdn.ru не так давно видела статью про "это" (ссылку искать лень). Вот ровно так я и делала: отдельные блоки для объектов разного размера и т.д... Памяти там было мало, а объектов плодилось много ... Потом еще были случаи, когда надо было построить объект в заданном буфере, уж не помню зачем...
Последнее время нет. Иногда возникают мысли - будет тормозить, нарисуем свой аллокатор (благо STL-контейнеры это допускают). Но начнешь бывало профилировать, и видишь, что на фоне всяческих вычислений и т.д. работа с памятью - это такая мелочь... Тем более, что STL-port'овские аллокаторы устроены вполне оптимально. -------------------- ... |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Еще применение: сборка мусора. См. Boehm GC. Давно хочу попробовать использовать на полную катушку... Пока негде.
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
а что в STL есть альтернатива new & delete? извините, но можно ли в таком случае примерчик - хочу попробовать. |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Перегружал и new и delete и писал в лог файл о том что когда было выделено.
Спасало от мемориликов очень часто --------------------
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Это не альтернатива new, просто STL, которой я пользуюсь, для узлов списков и т.д. использует свои аллокатары (по блокам распихивает), а не стандартные new. То ли только в релизе, то ли и в дебаге тоже - не помню. И какой тебе пример нужен? Это все делается прозрачно, так что многие и не подозревают. Или тебя интересует, как свой аллокатор подсунуть? Извини, примера, под рукой нет - просто реализуешь свой аллокатор, как в доках STL написано, и все. Класс аллокатора является последним параметром шаблона во всех контейнерах. По-моему, об этом неплохо написано у Майерса в "Эффективное использование STL". -------------------- ... |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
как-то попробовал отключить полностью все библиотеки в C++
пришлось определять свои new и delete (определил через WinApi-шные функции) -------------------- qqq |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Хех! По стопам идешь Значит на верном пути.. -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |