
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.7] |
![]() |
|
Страницы: (117) « Первая ... 104 105 [106] 107 108 ... 116 117 ( Перейти к последнему сообщению ) |
Сообщ.
#1576
,
|
|
|
Цитата wind @ Таким образом, говорить о какой-либо исключительной гибкости C++, о предоставлении им полной свободы "самовыражения" не приходится. В каждом из обсуждаемых языков свои собственные тараканы, наличие которых не позволяет судить о том, который из них лучше, ибо оба плохи ![]() Ну, с другой стороны, как видишь, С++ предоставляет больше возможностей в плане проектирования контрактов и интерфейсов. Ибо некоторые вещи проектировщик может "забить" именно на уровне кода. Можно ли в java языковыми средствами обязать пользователя разрушать объекты только строго определенным образом? Или создавать их только строго определенным образом? Или обязать разработчиков производных классов поступать только так, и никак иначе (управляя видимостью методов, их абстрактностью и т. п.)? |
Сообщ.
#1577
,
|
|
|
Цитата И смысл меряться количеством тараканов? Смысла меряться действительно нет. Но смысл выявить их - есть. Полезно иногда переосмыслить то, что уже кажется осмысленным ![]() |
Сообщ.
#1578
,
|
|
|
Цитата --Ins-- @ Нет, это просто порт под дотнет, имеющий в корне, грубо говоря другое апи.А Delphi.NET хоть и имеет библиотеку, подобную VCL (она даже называется так же) - это совсем другой компилятор и совсем другая библиотека, предназначенная для безболезненного перехода с Delhpi for Win32. Цитата --Ins-- @ VCL и в делфи без нета можно не использовать. Теоретически. Но желающих находится мало. Желающих ещо за это платить, как правило вообще не находится.Теоретически. На практике -- компилятор вмешивается в реализацию VCL, фактически дописывая её в компил-тайме, что делает её наглухо закреплённой в компиляторе. MFC же полностью самодостаточна и её скомпилит любой компилятор, придерживающийся стандартов. Конкретно билдер -- не знаю, он не придерживается стандартов, а значит гарантий быть не может. Одно знаю точно. VCL адаптированный под билдер -- ни на одном компиляторе С++ не скомпилится. Кстати, VCL в .NET можно и не использовать, а работать точно так же, как и в майкрософтовском C# - с теми же классами из пространства имен System (кажется так). |
![]() |
Сообщ.
#1579
,
|
|
Цитата Flex Ferrum @ Можно ли в java языковыми средствами обязать пользователя разрушать объекты только строго определенным образом? Или создавать их только строго определенным образом? Если хотите получить ответ, уточните вопросы. Что значит "разрушать объекты только строго определенным образом" или "создавать их только строго определенным образом"? Цитата Flex Ferrum @ Или обязать разработчиков производных классов поступать только так, и никак иначе (управляя видимостью методов, их абстрактностью и т. п.)? Ответ на вопрос в данной формулировке - можно, конечно. Не мешало бы уточнить. |
Сообщ.
#1580
,
|
|
|
Цитата На практике -- компилятор вмешивается в реализацию VCL, фактически дописывая её в компил-тайме, что делает её наглухо закреплённой в компиляторе. ![]() Добавлено VCL не зашита в язык. RTL - да, VCL - нет! |
Сообщ.
#1581
,
|
|
|
Цитата wind @ разрушать объекты только строго определенным образом Ну это значит, что объект должен завершить свой жизненный путь строго определенным образом (например, вызовом метода Release(), и никак иначе). |
Сообщ.
#1582
,
|
|
|
С сишниками и дельфистами разобрались, взялись за джавашников
![]() |
Сообщ.
#1583
,
|
|
|
Цитата Flex Ferrum @ Ну это значит, что объект должен завершить свой жизненный путь строго определенным образом (например, вызовом метода Release(), и никак иначе). А при чем здесь java? Это и в Delphi нельзя сделать. Добавлено Поясню: я не знаю способов принудить программистов выывать деструктор предка. Есть, правда, BeforeDestruction, но это обычно специально для сишников ![]() |
Сообщ.
#1584
,
|
|
|
Цитата Romkin @ я не знаю способов принудить программистов выывать деструктор предка. ![]() |
Сообщ.
#1585
,
|
|
|
Цитата LuckLess @ а он что.. в дельфи автоматически не вызывается..? Нет. Явный вызов inherited. Обязательно вызывается BeforeDestruction (исключая особый случай), но обычно все перекрывают не его, а деструктор. Память-то освободится, но если ты специально убрал слово inherited, которое ставится автопилотом, то ик! |
Сообщ.
#1586
,
|
|
|
Цитата --Ins-- @ Я и не говорил, что она зашита в язык. Я говорил, что компилер туды нагло вмешивается. Т.е. для его функционирования недостаточно просто выдержать синтаксис делфи. VCL не зашита в язык. |
Сообщ.
#1587
,
|
|
|
Цитата Romkin @ Обязательно вызывается BeforeDestruction (исключая особый случай), но обычно все перекрывают не его, а деструктор. ![]() ![]() ![]() |
![]() |
Сообщ.
#1588
,
|
|
Цитата Flex Ferrum @ Ну это значит, что объект должен завершить свой жизненный путь строго определенным образом (например, вызовом метода Release(), и никак иначе). Нет, конечно, в java нет и не может быть деструкторов. |
Сообщ.
#1589
,
|
|
|
Цитата LuckLess @ А еще говорят что С++ слишком сложный.. Ну видишь ли, когда программист добирается до самого понятия деструктор, считается, что он уже знает, что это и как его потреблять. ![]() В противовес можно писать кучу разных конструкторов... |
Сообщ.
#1590
,
|
|
|
Цитата wind @ Нет, конечно, в java нет и не может быть деструкторов. Ну да, мы же ручное управление ресурсами не любим, вместо нас этим сборщик мусора занимается... ![]() |