Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.024 c
3-1098527932
Black
2004-10-23 14:38
2004.11.21
Как отобразить значение n ой записи m ого столбца?


1-1099557247
V l a d i m i r
2004-11-04 11:34
2004.11.21
Разрешение экрана


14-1099761724
default
2004-11-06 20:22
2004.11.21
Послепятничная задачка


8-1093165374
SNV-Soft
2004-08-22 13:02
2004.11.21
Поверхность TPanel в Bmp файл!?


4-1097657167
OPEN_ALWAYS
2004-10-13 12:46
2004.11.21
CreateFile c OPEN_ALWAYS - Почему каждый раз




   Наверх