Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.05.2006, 14:09
jeckp jeckp вне форума
Прохожий
 
Регистрация: 04.05.2006
Сообщения: 11
Версия Delphi: Delphi 10.3
Репутация: 10
Вопрос Разница между "class" "object"

Добрый день.

У меня чайниковский вопрос. В чем разница, с точки зрения компилятора
и порядком работы программы, между следующими записями

t = class
private
i: integer;

public
procedure set_i;

end;


и

t = object
private
i: integer;

public
procedure set_i;

end;

?

Предыстория следующая. Есть библиотека (unit), в которой описан объект-класс "t", не содержащий визуальные компоненты. Экземпляр данного объекта-класса создается в форме которая описана отдельно.
Так вот если "t" описан как object то, пока , никаких проблем не возникает. Если он описан как class то при выполнении метода set_i выводится сообщение (я пока не понял кто его выводит ), что не объявлена переменная i.
В чем принципиальная разница между t = class и t = object?
Ответить с цитированием
  #2  
Старый 24.05.2006, 10:09
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Вот что написано в справке:
Код:
As an alternative to class types, you can declare object types using the syntax

type objectTypeName = object (ancestorObjectType)
	  memberList
	end;

where objectTypeName is any valid identifier, (ancestorObjectType) is optional, and memberList declares fields, methods, and properties. If (ancestorObjectType) is omitted, then the new type has no ancestor. Object types cannot have published members.

Since object types do not descend from TObject, they provide no built-in constructors, destructors, or other methods. You can create instances of an object type using the New procedure and destroy them with the Dispose procedure, or you can simply declare variables of an object type, just as you would with records.

Object types are supported for backward compatibility only. Their use is not recommended.
т.е. это было оставлено для обеспечеия совместимости, и не рекомендуется к использованию.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:55.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter