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

Вниз

Object types. В чём смысл удаления?   Найти похожие ветки 

 
Skyle ©   (2004-09-08 10:39) [0]

Вот никак не могу понять, зачем и за что Борланд хочет удалить эту конструкцию из языка? И в D5, и в D7 написано одно и то же, а именно Object types are supported for backward compatibility only. Their use is not recommended..

Мне интересно, есть ли причины для "use is not recommended" кроме того, что конструкция будет удалена?
И хочется понять, почему её удаляют.


 
TUser ©   (2004-09-08 10:51) [1]

Есть понятие class. Просто в TP (и кажется, в ранних версиях Delphi) была путаница с понятиями "объект" и "класс". Теперь все правильно и понятно, класс - это тип данных, объект - экземпляр конкретного класса (то, что создается конструктором).


 
PVOzerski ©   (2004-09-08 10:57) [2]

Если я понял правильно, речь идет о object в стиле BP. Они не поддерживают RTTI, не даопускают виртуальных конструкторов, не имеют предопределенный базовый тип с предопределенными конструктором, деструктором, набором методов и свойств, подобный tObject для классов. Видимо, не "стыкуются" с классами CPPBuilder"а в "сборных" проектах. Вроде бы, резон есть. Но вот парадокс: с этими объектами борландовский оптимизатор справляется лучше, чем с классами. А именно, может выбрасывать полностью перекрытые виртуальные методы предков. А у классов не может. Я, конечно, не В.Кладов, но сдается мне, именно поэтому, например, KOL написан на "устаревшей" основе. Так что, IMHO, напрасно считать объекты устаревшими.


 
Skyle ©   (2004-09-08 11:03) [3]


> Если я понял правильно,

Правильно, именно о них речь.


> Так что, IMHO, напрасно считать объекты устаревшими.

Именно поэтому меня и удивляет это упоминание в справке.

Закралось даже подозрение, что они не вписываются в какую-либо идеологию, но вот конкретно указать в какую именно, я не готов.


 
Акуличев Дмитрий   (2004-09-08 11:16) [4]


> Мне интересно, есть ли причины для "use is not recommended"
> кроме того, что конструкция будет удалена?

Есть. Например, конструкция неудобна.


 
Skyle ©   (2004-09-08 11:17) [5]


> Например, конструкция неудобна.

Кому неудобна?
Чем неудобна?


 
Акуличев Дмитрий   (2004-09-08 11:38) [6]


> Кому неудобна?

Могу прислать список из 83 фамилий.


> Чем неудобна?

Всем. (см [2])


 
euru ©   (2004-09-08 12:30) [7]

PVOzerski ©   (08.09.04 10:57) [2]
Они не поддерживают RTTI, не даопускают виртуальных конструкторов, не имеют предопределенный базовый тип с предопределенными конструктором, деструктором, набором методов и свойств, подобный tObject для классов.


А всегда ли это нужно?

Насколько я знаю, в 8-й версии расширили функциональность типа record, и он стал аналогичен (возможно, не полностью) типу object.
Отсюда два вывода (промежуточные рассуждения опущены):
1. тип object не так уж и плох;
2. его можно использовать в версиях D1-D7 (не знаю, поддерживается ли он в D8, но при необходимости там можно будет переименовать object на record).


 
PVOzerski ©   (2004-09-08 14:40) [8]

2euru ©   (08.09.04 12:30) [7]:
Насколько я знаю, record в D8 может иметь только статические методы, и для него не существует наследования.


 
euru ©   (2004-09-08 14:51) [9]

Жаль.
А чем вызваны такие ограничения?
Тип object в D8 остался?


 
jack128 ©   (2004-09-08 15:56) [10]

euru ©   (08.09.04 14:51) [9]
Жаль.
А чем вызваны такие ограничения?

а смысл? В NET автоматическая сборка мусора, а это убивает основное преимущество объектов перед классами..


 
euru ©   (2004-09-08 16:05) [11]

А какая связь между автоматической сборкой мусора и наследованием и виртуальными методами?
Если используется сборка мусора, то нужно ли вызывать метод Free(), после того как объект станет ненужным?


 
jack128 ©   (2004-09-08 16:10) [12]

euru ©   (08.09.04 16:05) [11]
А какая связь между автоматической сборкой мусора и наследованием и виртуальными методами?

если те нужны наследование и виртуальные методы используй классы.

Основное приемущество, ИМХО, объектов перед классами - это размещение в стеке. Точнее даже не важно в стеке, в дин памяти - важно то что мне не нужно следить за временем жизни объекта..В приходом NET это приемущество объектов теряется..


> Если используется сборка мусора, то нужно ли вызывать
> метод Free(), после того как объект станет ненужным?
необязательно..


 
iZEN ©   (2004-09-09 08:45) [13]

Трындец.
Borland изгаляется над ObjectPascal как хочет, а вы терпите, терпите, терпите...потом бросаете всё нафик и уходите к другому.



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

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

Наверх




Память: 0.5 MB
Время: 0.033 c
6-1090066678
8ung
2004-07-17 16:17
2004.09.26
CGI приложение


14-1094418610
yozh_programmer
2004-09-06 01:10
2004.09.26
update


4-1092735230
surkis
2004-08-17 13:33
2004.09.26
Cлужбы и БД


3-1093929473
Jey
2004-08-31 09:17
2004.09.26
Группировка в отчете


14-1094155876
SergP
2004-09-03 00:11
2004.09.26
Подскажите прогу для "вытягивания" паролей сохраненных в ИЕ