Модератор: Модераторы
runewalsh писал(а):Вообще, хотелось бы иметь memory layout как у object'а - VMT+указатели на виртуальные методы, без таблицы интерфейсов, имён методов и проч.
runewalsh писал(а):А во-вторых, если, в классе заведомо не будут использоваться, ну там, message'ы, интерфейсы, is-as и т. п., то разумно (имхо) их не поддерживать.
runewalsh писал(а):И, хотя это не принципиально - да, объекты быстрее, особенно создание и уничтожение, + экономия памяти.
скалогрыз писал(а):необоснованная боязнь высокоуровневых конструкций языка
скалогрыз писал(а):а есть ли замеры (тесты) по "быстродействию"?
скалогрыз писал(а):и есть ли замеры по экономии памяти?!
скалогрыз писал(а):есть ли такая задача, где использование классов, ну никак не подходит, но нужно что-то ООП-шное?!
runewalsh писал(а):Эмм, ну, в теории, лишних 80 байт на VMT всё-таки
runewalsh писал(а):Скажите наконец кто-нибудь, что такого FPC не умеет, по крайней мере пока, чтобы я успокоился.
Sergei I. Gorelkin писал(а):В случае с object размер VMT плюсуется к каждому экземпляру, если я правильно понимаю, и время инициализации каждого экземпляра растет в зависимости от размера этой самой VMT
Sergei I. Gorelkin писал(а):Не умеет
runewalsh писал(а):А вот и нет. Как и для классов, в object memory layout первые 4/8 байт - указатель на VMT, и она не копируется для каждого экземпляра - п. 8.2.12 Programmer's Guide
runewalsh писал(а):Нет... Я не против классов, просто, скажем, какому-нибудь tVector3D, и не только ему, большая часть функциональности TObject не нужна.
TVector3D = record x,y,z: single; end;
procedure v3dSomeMath(var v1,v2: TVector3d)
procedure v3daSomeMath(var v: array of TVector3D)
Вернуться в Free Pascal Compiler
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8