![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
Чем все таки лучше someContainer += someItem, чем тот же someContainer.addItem(someItem)?
ну и т.д. |
|||
|
||||
| Ulysses4j |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 6.6.2007 Где: Ростов-на-Дону Репутация: 4 Всего: 10 |
"Синтаксический сахар", в общем. В Java принципиально отказались, считая, не без оснований, что неочевидная семантика арифметических операторов ведет к избыточным затруднениям в понимании исходного кода. Конечно, при реализации разнообразных алгороитмов, использующих естественные для данной предметной области арифметические операции, это очень удобно. С другой стороны, временные объекты сильно портят жизнь, а expression templates не каждый готов браться реализовывать.
На мой взгляд, не только ничем, но и хуже - мне не нравится такое использование перегрузки (здесь from scratch есть неоднозначность: то ли добавить елемент в контейнер, то ли добавить его к каждому элементу контейнера). Это сообщение отредактировал(а) Ulysses4j - 14.7.2007, 09:14 -------------------- Communication is critical to the job of a programmer. C. Jazdzewski. Fatherly Advice To New Programmers |
||||
|
|||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
У меня препод так презррительно посмотрел на джаву: «Фе, там нет перегрузки», хотя пользу перегрузки так и не объяснил.
P.S. Мне больше нравится подход джавы: ничего лишнего. |
|||
|
||||
| Ulysses4j |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 6.6.2007 Где: Ростов-на-Дону Репутация: 4 Всего: 10 |
Ну, весьма сомнительно, что это подход Java ("write once - work anywhere" - это да). Просто в этом конкретном случае был сделан такой выбор. В С# вот оставили - не могу сказать, что испытал по этому поводу большое горе, даже несколько напротив. У меня, как математика по образованию, смешанные чувства к перегрузке арифметических операторов. Мне приходилось писать алгоритмы с полиномами, с элементами полей Галуа и т.д. С операторной перегрузкой - это просто несравненно удобней, чем с процедурной формой. А читабельность в алгоритмах это очень важная штука. Но вот overhead в виде временных объектов меня всегда подтачивал изнутри. А математика у меня прикладная, и алгоритмы, скажем, относятся к теории кодирования - глядишь, а на практике-то оно может оказаться крайне неэффективным. Это сообщение отредактировал(а) Ulysses4j - 15.7.2007, 13:55 -------------------- Communication is critical to the job of a programmer. C. Jazdzewski. Fatherly Advice To New Programmers |
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
А как же обобщенное программирование ... да и в STL как-то без перегрузки ...
|
|||
|
||||
| Ulysses4j |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 6.6.2007 Где: Ростов-на-Дону Репутация: 4 Всего: 10 |
Все, что я говорил, относится не к перегрузке вообще, а - к перегрузке операторов. Где там в STL сильно используется перегрузка операторов? Ну, и в Java, ясное дело, обычная перегрузка функций есть.
Это сообщение отредактировал(а) Ulysses4j - 15.7.2007, 13:54 -------------------- Communication is critical to the job of a programmer. C. Jazdzewski. Fatherly Advice To New Programmers |
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Ulysses4j, Где сильно? А как же перегрузка operator < для сортировки объектов в set ? И т.д.
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |