Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.21;
Скачать: CL | DM;

Вниз

Отличие class от object   Найти похожие ветки 

 
Frozzen   (2004-11-05 16:59) [0]

Объясните пожайлусто без приколов чем отличие объявления class от object


 
KSergey ©   (2004-11-05 17:07) [1]

Рискну, хотя не уверен. Ну да поправляльщики, как правило, быстро находятся. Что и к лучшему ;)

object - наследник TObject, что подразумевает включение многих методов уже. А так же особенностей поведения.

class - а нифига в нем нет, как я понимаю. С чистого листа ;) Если не вру - он даже память сам под себя выделять даже не умеет (MakeInstance в TObject). Да и вообще оставлен лишь для совместимости. Не рекомендуется для использования, хотя есть ребята, которые его активно юзают (KOL)


 
begin...end ©   (2004-11-05 17:10) [2]

Help:

If the declaration of a class type doesn"t specify an ancestor, the class inherits directly from TObject. Thus

type TMyClass = class
...
end;

is equivalent to

type TMyClass = class(TObject)
...
end;

The latter form is recommended for readability.


 
Pentium133 ©   (2004-11-05 17:12) [3]


> KSergey ©   (05.11.04 17:07) [1]

Скорее наоборот!


 
KSergey ©   (2004-11-05 17:13) [4]

Ой, я походу все ровно перепутал... наибарот, так сказать...


 
begin...end ©   (2004-11-05 17:14) [5]

Или имеется в виду различие между

TMyObject = class

и

TMyObject = object

?

ИМХО, object оставили для обратной совместимости с ТР. :-)


 
Frozzen   (2004-11-05 17:25) [6]

т.е. лучше пользовать object


 
jack128 ©   (2004-11-05 17:43) [7]

Frozzen   (05.11.04 17:25) [6]
т.е. лучше пользовать object

это откуда ты такой вывод сделал???


 
Гаврила ©   (2004-11-05 17:59) [8]

под Object память выделяется сразу.
Если переменная типа Object объявлена как локальная, она целиком помещается в стек, то есть не указатель ,а весь объект.
При передаче Object параметром в функцию если не указана директива var или const, также происходит полное копирование в стек содержимого объекта.

А что лучше - ну так однозначный ответ

> ИМХО, object оставили для обратной совместимости с ТР. :-)


 
PVOzerski ©   (2004-11-05 19:15) [9]

Классы появились в Delphi, до этого в TP были только объекты. Классы, в отличие от объектов, подразумевают динамическое выделение памяти под каждый экземпляр, что происходит при вызове конструктора (синтаксис этого вызова очень похож на синтаксис вызова функции, в то время как у объектов конструктор - процедура). При этом именно у классов есть набор предопределенных в tObject методов, допускаются виртуальные конструкторы, published-свойства и связь с COM-интерфейсами. Кроме того, именно для классов возможно использование метаклассов для динамического выбора типа порождаемых экземпляров. В целом, Borland рекомендует использовать именно классы. Хотя с точки зрения оптимизации (точнее, удаления "мертвого" кода) объекты тоже имеют ряд преимуществ - см. проект KOL.


 
Frozzen   (2004-11-05 19:17) [10]

Спасибо за толковый ответ PVOzerski



Страницы: 1 вся ветка

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
6-1095159757
xLoki
2004-09-14 15:02
2004.11.21
запуск dll из под Apache


3-1098265706
Алексей
2004-10-20 13:48
2004.11.21
В каком направлении копать: аналог client-server для FOX-таблиц?


1-1099547598
InfMag
2004-11-04 08:53
2004.11.21
Запоритсая проблема с конвертом TColor а


1-1099390639
Влад
2004-11-02 13:17
2004.11.21
Кто-нибудь пользуется компонентом Async32 для Delphi


3-1098377277
DRON
2004-10-21 20:47
2004.11.21
Посоветуйте как конвертировать DBF таблицу в DB.