Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.039 c
1-1094710146
denis24
2004-09-09 10:09
2004.09.26
Раскраска строк в listview


3-1093604987
Romko
2004-08-27 15:09
2004.09.26
Переход от IB6 к FB1.5


1-1094589457
ilop
2004-09-08 00:37
2004.09.26
Масссссивы в record


14-1094374411
McSimm
2004-09-05 12:53
2004.09.26
Прошу понять меня правильно. Очень прошу.


9-1085904941
MIX
2004-05-30 12:15
2004.09.26
OpenGL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский