|
"C with Classes"
|
|
Сборщик мусора01.12.2019, 19:38. Показов 9908. Ответов 54
Метки нет (Все метки)
Наткнулся на такие строки и прошу пояснить, что значит.
Во многих языках управление ресурсами в основном делегируется сбор щику мусора. С++ также предлагает интерфейс сборки мусора, так что вы можете подключить сборщик мусора. In many languages, resource management is primarily delegated to a garbage collector. C++ also offers a garbage collection interface so that you can plug in a garbage collector На чем основывается этот интерфейс? И как его подключить. (это про сторонние библиотеки что ли?)
0
|
|
| 01.12.2019, 19:38 | |
|
Ответы с готовыми решениями:
54
Сборщик мусора задача не для новичков- сборщик мусора
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 01.12.2019, 23:32 | ||
|
Я вообще говоря ожидал что вместо этого полиморфный объект будет хранить виртуальный метод getMyAddress, через который и будет вытягиваться нужный аллокатору адрес Child*. А сам аллокатор будет не привязан к конкретному типу, а работать как обертка над malloc. Ну, второй пункт в polymorphic_allocator и правда сделали. А вот с первым затык.
0
|
||
|
Комп_Оратор)
|
|
| 01.12.2019, 23:46 | |
|
_stanislav, GC -шные библиотеки "одевают" всё. Начинается от new и заканчивается одетыми указателями. Это аналоги смартпойнтеров. Напиши свою реализацию упрощённо и поймёшь. Вот ссыль (я смотрел по диагонали - вроде похоже на правду).
https://www.codeproject.com/Ar... on-library Самый главный в С++ вопрос о GC звучит так: - А зачем (зачем - мягко сказано) тогда С++? (имхо). Когда ты напишешь систему поиска нужного объекта для удаления при выходе из области, - одну, вторую, третью, - поймёшь, - лучше на Жаве писать и не мучать ЖоЦэ.
1
|
|
|
"C with Classes"
|
|||
| 02.12.2019, 05:06 [ТС] | |||
|
0
|
|||
|
Комп_Оратор)
|
||||
| 02.12.2019, 10:59 | ||||
|
Добавлено через 12 минут Не по теме: зы это у всех такие тормоза с форумом или у меня только?
0
|
||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 11:25 | |
|
IGPIGP,
Так все дело в том что программист в случае стандартного gc "не одевает" указатель. Нет никаких обёрток. http://www.stroustrup.com/C++11FAQ.html#gc-abi По этой ссылке ничего подобного нет. Работа идёт по прежнему, только не думаем о delete (за то начинаем держать в голове правила работы с gc). Поэтому мне не понятно почему уже вторую страницу речь идёт про обёртки, в то время как тема о стандартном gc. Понимаю, сейчас зима, хочется одеться самому и одеть указатели, но указатели не мерзнут, можете не переживать
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 02.12.2019, 11:55 | ||
|
А, стоп, вот же ответ - "There is no standard way of saying which alternative you prefer. Considered that a "quality of implementation" and a "programming environment" issue. ". То ли цитату первого апреля писали, то ли снизу постучали.
1
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 12:50 | |
|
Renji,
Нормальному gc ничего сообщать обычно не нужно. На то он и gc, что бы отслеживать ресурсы без вмешательства программиста иначе от него скорее будет больше проблем чем пользы
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 02.12.2019, 13:04 | ||
|
0
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 13:11 | |
|
Renji,
Согласен, это должно быть без принуждений. Чтоб был вкл/выкл... А когда он вкл, что бы сам следил за ресурсами. Но думаю что все таки эта фича не для с++, даже с возможностью вкл/выкл
0
|
|
|
Комп_Оратор)
|
||
| 02.12.2019, 13:24 | ||
|
Добавлено через 12 минут Undisputed, вы читали текст по предложенной вами ссылке? Тогда обратите внимание на предложенную там БС ссылку на реализацию: https://dl.acm.org/citation.cf... 31.1542437
0
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 14:28 | |
|
IGPIGP,
В С++ я gc не пользовался. Но это никак не меняет сути gc. Не вижу кода по вашей ссылке. А на ФАГе Страуструпа код есть и указатели в нем не одетые.
0
|
|
|
Комп_Оратор)
|
||||||
| 02.12.2019, 14:44 | ||||||
|
Undisputed, ваш ответ содержит две несовместимые части. И не только в последнем посту. Но давайте с последнего начнём:
0
|
||||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 15:32 | |
|
IGPIGP,
Я читал текст по той ссылке. И по контексту я понял что сборщик должен уметь работать с указателем, полученным через new, то есть не одетым указателем. Если вы считаете что я где-то ошибся, то прошу укажите конкретно на ошибку. А то шума много, но ничего конкретного нет
0
|
|
|
Комп_Оратор)
|
|||
| 02.12.2019, 15:45 | |||
0
|
|||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 15:55 | |
|
IGPIGP,
1) Где вы там увидели про базовый класс? 2) Указатель это не классовый тип и унаследовать функционал класса он не может
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 02.12.2019, 16:01 | ||
|
И не заведется оно на классах. Делаем сборщик мусора на основе подсчета ссылок, прям как в shared_ptr. Объект A ссылается на объект B, а объект B ссылается обратно на A. Где эти A и B лежат никто уже и не знает, но счетчик ссылок то не нулевой! Утечка памяти. Делаем сборщик мусора считающий достижимость объекта из указателя в локальных и глобальных переменных. А откуда умному указателю знать локальный он или в динамической памяти лежит? Особенно, если он в другой объект вложен. В рамках C++ затея получается еще более сомнительной.
1
|
||
|
Комп_Оратор)
|
||||
| 02.12.2019, 16:15 | ||||
|
Добавлено через 2 минуты
0
|
||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 16:16 | |
|
IGPIGP,
Отличаю. Так где там про базовый класс то написано?
0
|
|
|
"C with Classes"
|
|
| 02.12.2019, 17:01 [ТС] | |
|
Undisputed, я думаю ты правильно понял работу стандартного GC.
Добавлено через 13 секунд солидарен.
0
|
|
|
Комп_Оратор)
|
|
| 02.12.2019, 18:51 | |
|
0
|
|
| 02.12.2019, 18:51 | |
|
Помогаю со студенческими работами здесь
40
Очистка мусора Сборка мусора
Уборка мусора из double Как избавиться от записи мусора? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|