Главная страница
    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.46 MB
Время: 0.035 c
14-1099661468
Gorlum
2004-11-05 16:31
2004.11.21
Срочно, кто может помочь


3-1098280573
Tchainik_Delphi
2004-10-20 17:56
2004.11.21
Добавление данных с помощью TIBDataSet.


1-1099899089
Андерсон
2004-11-08 10:31
2004.11.21
WinHelp - как вывести главное окно


1-1099386090
Homa_Programer
2004-11-02 12:01
2004.11.21
Word :-(


14-1099161093
Alein
2004-10-30 22:31
2004.11.21
Года 2-3 назад это было, не помню...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский