![]() |
|
Модераторы: LSD |
![]()
|
|
| 502 |
|
|||
![]() Я всегда прав ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 16.7.2011 Репутация: нет Всего: 4 |
Какие аргументы есть чтобы язык не поддерживал перегрузку операторов?
|
|||
|
||||
| newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 1 Всего: 19 |
Какие есть аргументы в пользу того, чтобы в языке вообще были операторы?
-------------------- You're face to face With man who sold the world |
|||
|
||||
| 502 |
|
|||
![]() Я всегда прав ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 16.7.2011 Репутация: нет Всего: 4 |
||||
|
||||
| newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 1 Всего: 19 |
Субъективно. В противовес могу сказать, что без специальных операторов код единообразен, что субъективно также положительно сказывается на читабельности, а объективно упрощает компилятор и косвенно положительно сказывается на возможностях метапрограммирования на этом языке.
По сабжу же... Плюсы: язык становится гибче. Минус: потенциально код становится более "опасным" и "удивительным". -------------------- You're face to face With man who sold the world |
|||
|
||||
| 502 |
|
|||
![]() Я всегда прав ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 16.7.2011 Репутация: нет Всего: 4 |
||||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 2 Всего: 211 |
Да, вообще это удивительно, когда написано что-то вроде
и совершенно непонятно что делает этот оператор, гораздо логичнее и понятнее написать
|
||||
|
|||||
| 502 |
|
|||
![]() Я всегда прав ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 16.7.2011 Репутация: нет Всего: 4 |
||||
|
||||
| newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 1 Всего: 19 |
Опасность вытекает из удивительности. Видя знакомое a + b ты никак не ожидаешь, что оно начнет удалять файлы из твоего домашнего каталога. Утрирую, но, думаю, мысль должна быть ясна.
-------------------- You're face to face With man who sold the world |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 2 Всего: 211 |
Перегрузка операторов иногда бывает довольно полезной, просто надо знать где и как ее использовать. Скажем установка обработчика события на класс оператором + это извращение. Перегруженный оператор должен делать то, чего от него ждет пользователь, т.е. + это математический плюс а не добавление чего-то к чему либо. Я бы и из string-а убрал этот оператор, но к нему уже все привыкли. |
|||
|
||||
| 502 |
|
|||
![]() Я всегда прав ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 16.7.2011 Репутация: нет Всего: 4 |
||||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 2 Всего: 211 |
Это не значит, что надо запрещать операторы, просто надо запрещать извращенцам писать код Индокод можно на любом языке написать и без перегрузки операторов. Добавлено через 4 минуты и 33 секунды Зря, эти методы очень коварны Это сообщение отредактировал(а) azesmcar - 6.12.2011, 10:52 |
|||
|
||||
| newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 1 Всего: 19 |
502, azesmcar, вы б читали, что комментируете... Про потенциальную опасность и удивительность я писала в рамках обсуждаемой темы "давать перегружать операторы или нет". Естественно на перегруженные функции это тоже распространяется...
Добавлено через 56 секунд Я и говорю, субъективизм. Мне обе записи понятны, вторая даже лучше благодаря четкой структурированности. Добавлено через 2 минуты и 2 секунды Еще! Отказываясь от операторов мы забываем о такой головной боли (особенно начинающих программистов) как порядок выполнения операторов. -------------------- You're face to face With man who sold the world |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 2 Всего: 211 |
Предлагаете и перегрузку функций запретить? Удивительным и опасным код делает не какая либо возможность языка, а кривые руки программиста. Это сообщение отредактировал(а) azesmcar - 6.12.2011, 11:01 |
|||
|
||||
| 502 |
|
|||
![]() Я всегда прав ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 16.7.2011 Репутация: нет Всего: 4 |
||||
|
||||
| newbee |
|
||||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 1 Всего: 19 |
Удивительность перегрузки - это аргумент, я его констатировала. Мы можем или отказаться от гибкости и запретить перегрузку, или соглашаемся на дубовость, но ### надежную. -------------------- You're face to face With man who sold the world |
||||
|
|||||
![]()
|
| Правила ведения Религиозных войн | |
|
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Религиозные войны | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |