Сообщение Re: принципиальные отличия module class от 16.07.2023 18:34
Изменено 16.07.2023 18:43 Эйнсток Файр
Re: принципиальные отличия module class
Р>значить любой класс это модуль?
К классу можно применить операцию "инстанциация", при этом в куче будет выделена память под переменные класса, инициализирована указателем на таблицу виртуальных методов и прочим RTTI, и возвращёт указатель на неё (и, возможно, будет вызыван "конструктор").
То, что получится, называется "объект". И самое главное, что таких объектов можно создать миллионы (если памяти хватит).
Разумеется ещё есть обратная операция "деструкция", про которую спрашивают в форуме "политика", но это неважно.
А у модуля нет операции "инстанциация".
Операция же "загрузка" есть и у класса и у модуля, это верно. В этот момент выполняемый код класса или модуля перемещается из внешней памяти в оперативную (и, возможно, происходит инициализация статических переменных, или вызов статического конструктора).
Таким образом, класс может обладать качествами модуля (например в Java, когда загружается по RMI).
К классу можно применить операцию "инстанциация", при этом в куче будет выделена память под переменные класса, инициализирована указателем на таблицу виртуальных методов и прочим RTTI, и возвращёт указатель на неё (и, возможно, будет вызыван "конструктор").
То, что получится, называется "объект". И самое главное, что таких объектов можно создать миллионы (если памяти хватит).
Разумеется ещё есть обратная операция "деструкция", про которую спрашивают в форуме "политика", но это неважно.
А у модуля нет операции "инстанциация".
Операция же "загрузка" есть и у класса и у модуля, это верно. В этот момент выполняемый код класса или модуля перемещается из внешней памяти в оперативную (и, возможно, происходит инициализация статических переменных, или вызов статического конструктора).
Таким образом, класс может обладать качествами модуля (например в Java, когда загружается по RMI).
Re: принципиальные отличия module class
Р>значить любой класс это модуль?
К классу можно применить операцию "инстанциация", при этом в куче будет выделена память под переменные класса, инициализирована указателем на таблицу виртуальных методов и прочим RTTI, и возвращёт указатель на неё (и, возможно, будет вызыван "конструктор").
То, что получится, называется "объект". И самое главное, что таких объектов можно создать миллионы (если памяти хватит).
Разумеется ещё есть обратная операция "деструкция", про которую спрашивают в форуме "политика", но это неважно.
А у модуля нет операции "инстанциация".
Операция же "загрузка" есть и у класса и у модуля, это верно. В этот момент выполняемый код класса или модуля перемещается из внешней памяти в оперативную (и, возможно, происходит инициализация статических переменных, или вызов статического конструктора).
Таким образом, класс может обладать качествами модуля (например в Java, когда загружается по RMI).
К классу можно применить операцию "инстанциация", при этом в куче будет выделена память под переменные класса, инициализирована указателем на таблицу виртуальных методов и прочим RTTI, и возвращёт указатель на неё (и, возможно, будет вызыван "конструктор").
То, что получится, называется "объект". И самое главное, что таких объектов можно создать миллионы (если памяти хватит).
Разумеется ещё есть обратная операция "деструкция", про которую спрашивают в форуме "политика", но это неважно.
А у модуля нет операции "инстанциация".
Операция же "загрузка" есть и у класса и у модуля, это верно. В этот момент выполняемый код класса или модуля перемещается из внешней памяти в оперативную (и, возможно, происходит инициализация статических переменных, или вызов статического конструктора).
Таким образом, класс может обладать качествами модуля (