Классы cpp загружаются динамически?

Я знаю, что у JVM есть отдельный загрузчик классов, который является методом времени выполнения по умолчанию для загрузки классов и их выполнения. Я просто хочу знать, как загрузка классов работает для cpp. А загрузка классов в cpp в некоторой степени связана с динамической загрузкой в ​​операционных системах. Если классы не загружаются динамически, я думаю, что нет необходимости в выделении кучи. Но у cpp явно есть опция памяти free (). Я немного смущен. Как это работает?

РЕДАКТИРОВАТЬ: я понял, почему куча требуется для инициализации объекта. Но причины статической или динамической загрузки самих классов мне не ясны, особенно то, как это делает cpp.

0

Решение

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

Динамическая память не имеет ничего общего с динамической загрузкой классов. «Динамическая» память подразумевает, что размер памяти не обязательно известен во время компиляции и может быть известен только во время выполнения, с возможностью изменения и изменения размера, отсюда и «динамический». Опять же, это достигается с помощью машинных инструкций, которые не имеют знаний о классах.

Единственное, что удаленно напоминает «загрузку классов» — это загрузка DLL. DLL — это скомпилированный код, который экспортирует функции для использования другими программами.
DLL может быть загружена и выгружена во время выполнения. И снова эти экспортированные функции уже являются машинными инструкциями.

6

Другие решения

Других решений пока нет …