»»» Диман - makaev@pisem.net (28.07.00 13:05) Объект - это экземпляр класса.
»»» ASCRUS - ascrus@aport.ru (28.07.00 13:47) если ты имеешь ввиду под понятием обьекты: обьектыне типы, которые описывались ранее в Object Pascal (ключевое слово object), то в Delphi class - это то же самое плюс свойства, события и RTTI (то есть возможность делать публицируемые свойства).
»»» Alexander - avolkov@infostroy.ru (28.07.00 13:48) Согласен с предыдущим с точки зрения анализа. Еще - объект отличается наличием данных (атрибутов или в терминологии Delphi полей, свойств, указателей на обработчиков событий). Класс данных не имеет, кроме реализованных в виде функций класса и предопределенных в TClass атрибутов, например ClassName.
»»»
SergSuper - sergsuper@mail.ru (28.07.00 14:24) Не со
всем так. Класс тоже ведь имеет данные. t=class X:char end - X это что, не данные? Дело в следующем. Первоначально появился object - что-то вроде record-а, но с процедурами, наследованием и т.д. Использовались обычно объекты динамически, т.е. приходилось описывать тип данных объект и тип ссылку на него. Чтобы создать нечто динамическое надо было использовать функцию New. В итоге всё получалось несколько громоздко. В Delphi решили работать с объектами по-другому, т.е. объект(который class) это уже сразу ссылка, еще один тип объявлять не надо, New тоже не надо вызывать. Все новые возможности реализовали только в классах, а object оставили для совместимости.
Ну а принципиальные различия между class и object, как видно из вышеописаного: 1. Класс это ссылка 2. В классы реализованы новые возможности. Если не имеются в виду паскалевские термины, то объект и класс это обычно
одно и тоже, ну может быть "объект - это экземпляр класса".
»»&r
aquo; Alexander - avolkov@infostroy.ru (28.07.00 15:13) Д!
а, тут н
ечего сказать. Super поставил жирную точку в дискусси, не удосужившись понять о чем я писал. Написав "t=class X: char; end;" Вы не сможете обратиться к данным "t.X := #13;", поскольку память под эти "данные" не выделена. Понятно? Не верите, можете попробовать. И вообще, прежде чем писать пример кода, неплохо было бы его хотя-бы откомпилировать без ошибок.
»»» Диман - makaev@pisem.net (28.07.00 15:38) Вот я и говорю: Объект - это экземпляр класса. т.е. объект, это тотже класс, под который выделена память и с которым уже можно работать.
»»» SergSuper - sergsuper@mail.ru (28.07.00 16:02) Ну зачем же так. Очень я даже удосужился. А Ваш последний мессаждь действительно мне непонятен, чего я не скрываю. Написав t=class Вы объявляете тип и естественно не можете присвоить данные типу. Естественно такое компилироваться не будет и
я не пытался его компилировать. Вам же не придет в голову писать "t=record X: char; end"
и потом обращаться к данным "t.X := #13;". Так что Ваши возражения не принимаю. Чтобы окончательно снять вопросы приведу пример идентичного объекта реализованного через object и через class
---object----- type to=object(TObject) x:byte end; po=^to; var o:po; begin o:=New(po,Init) o^.x=#13; Dispose(o,Done) end
---class----- type to=class(TObject) x:byte end; var o:to; begin o:=to.Create o.x=#13; o.Free end
Т.е. когда пишется через object есть и объект(to) и ссылка на него (po). Когда пишется через class есть только ссылка(to). Я думаю, что для Alexander-а я ничего нового не написал, спор имеет чисто теоритический характер, но может кому-то, кто не писал на Паскале 6
или 7, будет интересно.
»»» Palladin (31.07.00 17:40) К
ороче, я понял, что объекты в Delphi еще можно использовать.!
И тут в
опрос возник другой. На счет того что имя класса сразу является указателем я понял, но тогда вопрос: можно ли написать класс с нуля или без TObjecta не обойтись?
»»» ASCRUS - ascrus@aport.ru (01.08.00 08:34) Да ты прав - даже если ты напишешь типа to = class, то все равно это будет означать to = class(TObject). Естественно это сделанно из-за RTTI
»»» SergSuper - sergsuper@mail.ru (01.08.00 09:07) Если использовать object - то будет без без TObject, чисто твой объект. Если class - то прицепляется автоматом.
-= Из конференции сайта MASTERS OF DELPHI (http://delphi.mastak.com) =-
«DELPHI в примерах для начинающих» - Изучение простейших приемов работы с файлами и потоками на примере программы «Монитор каталогов»
Давайте вместе создадим программу, которая будет непрерывно проверять каталог на предмет изменения содержимого (появление нового файла, удаление файла, переименование и изменение файла). Добавим в нашу программу возможность ведения протокола изменений в проверяемом каталоге и функции динамической настройки этого списка. После написания программы добавим еще одно "удобное" свойство – спрячем программу в SysTray...
Photoshop 7. Для профессионалов(+CD)
Эта книга посвящена последней версии Photoshop - самой популярной программы для работы с растровой графикой. В ней рассматриваются не только новые возможности пакета, но подробно и последовательно рассказывается обо всех средствах, которые дает Photoshop в руки профессионального художника-графика или фотографа для решения самых разнообразных задач. Ориентация на опытных пользователей позволила включить в книгу достаточно сложные упражнения. Прилагаемый к книге компакт-диск содержит электронные версии примеров к книге, дополнительные электронные главы с описанием программы ImageReady, инструментов для подготовки изображений для Интернета, а также демонстрационные версии фильтров разных фирм и программы с ограниченным сроком использования.
Автор: Петров М. Н.
Хокку дня
Твой номер набрав, Боюсь услышать голос. Вечно занято...
Афоризмы
Чистая правда, а как запятнала!
Фраза дня
На ошибках мучатся
Дурацкие законы (информация предоставлена сайтом kurilka.com)
В городе Белмедир в Калифорнии (США) муниципалитет вынес постановление, которое гласит "Собак запрещается пускать в общественные заведения, кроме как с владельцами на поводке." (кто должен быть на поводке не объясняется)
В городе Льюис (США) запрещается появляться на улице в штанах, "черезчур" облигающих ноги и талию.
И на закуску коротенький анекдот
Удивительный орган - человеческий мозг: когда мы утром просыпаемся, он начинает усиленно работать и не останавливается вплоть до нашегоприбытия на работу.