![]() |
Модераторы: THandle, bems Страницы: (28) « Первая ... 18 19 [20] 21 22 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: 3 Всего: 18 |
нет, не думаю. думаю, что в делфи рантайм никуда не годится. и думаю, раз никуда не годится рантайм то и сериализация никуда не годится. а раз никуда не годится сериализация - значит нет красивого способа хранить сложные типы в файлах/потоках. а если нет возможности легко хранить в файлах/потоках сложные типы - то с хранением настроек получим лишнюю головную боль и лишние телодвижения. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
дотнетчики не слышали что "унаследован значит является"? -------------------- Обижено школьников: 8 |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
так а чем тут поможет одиночное наследование (A -> B -> C)? Это сообщение отредактировал(а) k0rvin - 15.6.2011, 19:53 -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
в нем такая противоречивая ситуация невозможна в принципе.
-------------------- Обижено школьников: 8 |
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
Что значит никуда не годится рантайм, что под этим подразумеваете? А на счет сериализации зря вы так думаете, хотя я в делфи практически не сталкивался с надобностью сериализации, но вроде как если имеем TPersistant и TComponent то проблем нет, плюс есть DBXJSONReflect или TJvAppXMLFileStorage. Я думаю есть, кто на счет этого может больше сказать. Что касаться .NET, ну да, там более красиво это сделано, возможности атрибутов плюс продуманные готовые интерфейсы делают сериализацию проще и непринужденнее, но вот со сложными типами тоже можно намучаться(что называется плавали, знаем). Хотя вот даже просто возможность скопировать поток в поток появилась только в 4 фреймворке. |
|||
|
||||
k0rvin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
так, еще раз
как одиночное наследование поможет вызвать метод, объявленный в A? -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||
|
|||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
k0rvin, или это я плохо объясняю, или не знаю даже...
В классе А объявлен виртуальный метод. Он или публичный, или вызывается из какого-то публичного метода. Он наследуется всеми потомками и может быть вызван как метод потомка - прямо если публичный или косвенно, если нет. Унаследуем от А классы В1 и В2, в каждом из которых метод перекрыт по своему. Можно вызывать B1.Method() или B2.Method() и получить разное поведение. При наличии множественного наследования, возможно унаследовать класс С от двух родителей B1 и B2. Поскольку А является предком С, то имея экземпляр С можно вызвать наш метод. Противоречие заключается в том, что не понятно какая реализация должна быть вызвана: из В1 или из В2 При отсутствии множественного наследования С наследуется или от В1 или от В2, но не от обоих сразу, поэтому противоречия не возникает. -------------------- Обижено школьников: 8 |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
и компилятор укажет на это противоречие и потребует от программиста явно указать какой из методов должен использоваться в C. так в C++. так в Delphi при реализации классом двух интерфейсов с одинаковыми методами. а в CLOS, например, используется precedence-list, т.е. по-умолчанию в данном случае будет использоваться B1
-------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
Из вики я узнал что это называется проблемой ромба)) Вообще вот список проблем множественного наследования, из вики:
И правильно в сад его, слишком много неопределенностей вносит |
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: нет Всего: 58 |
Тут холивар, а вы теории обсуждаете =)
|
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
как хорошо, что CLOS лишена этих проблем =) -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
да нафиг нужно это множественное наследование
|
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: нет Всего: 58 |
Затем чтобы удобнее делать некоторые вещи, как с интерфейсами в Делфи.
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
а ещё кроме обновлений самой винды, нужно тянуть сотни мегабайт обновлений дотнета, причем для разных версий.
Добавлено через 26 секунд ну конечно... это уже ведь не забота программиста ))) |
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: нет Всего: 58 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi" | |
|
Добро пожаловать в форум группы "Delphi". В разделе разрешается:
Строго запрещено:
Если Вам понравилась атмосфера форума, заходите к нам чаще! Люблю, целую, вечно Ваш, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Форум группы: delphi | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |