Re: принципиальные отличия module class
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 16.07.23 18:34
Оценка: 1 (1)
Р>значить любой класс это модуль?

К классу можно применить операцию "инстанциация", при этом в куче будет выделена память под переменные класса, инициализирована указателем на таблицу виртуальных методов и прочим RTTI, и возвращёт указатель на неё (и, возможно, будет вызыван "конструктор").
То, что получится, называется "объект". И самое главное, что таких объектов можно создать миллионы (если памяти хватит).

Разумеется ещё есть обратная операция "деструкция", про которую спрашивают в форуме "политика", но это неважно.

А у модуля нет операции "инстанциация".

Операция же "загрузка" есть и у класса и у модуля, это верно. В этот момент выполняемый код класса или модуля перемещается из внешней памяти в оперативную (и, возможно, происходит инициализация статических переменных, или вызов статического конструктора).
(и, возможно, существует парная операция "выгрузка", но в core выгружать ассембли стало труднее, чем было в mono)

Таким образом, класс может обладать качествами модуля (например в Java, когда загружается по RMI). Но возможно у модулей есть что-то ещё, другие качества, которых нет у класса. В этом случае чтобы записать в онтологии понятия "класс" и "модуль", надо будет ввести ещё одно понятие, базовое и для класса и для модуля.
Отредактировано 16.07.2023 18:52 Эйнсток Файр . Предыдущая версия . Еще …
Отредактировано 16.07.2023 18:51 Эйнсток Файр . Предыдущая версия .
Отредактировано 16.07.2023 18:45 Эйнсток Файр . Предыдущая версия .
Отредактировано 16.07.2023 18:43 Эйнсток Файр . Предыдущая версия .
Отредактировано 16.07.2023 18:40 Эйнсток Файр . Предыдущая версия .
Отредактировано 16.07.2023 18:38 Эйнсток Файр . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.