Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перегрузка операторов 
:(
    Опции темы
502
Дата 6.12.2011, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Я всегда прав
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 16.7.2011

Репутация: нет
Всего: 4



Какие аргументы есть чтобы язык не поддерживал перегрузку операторов?
PM MAIL   Вверх
newbee
Дата 6.12.2011, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: 1
Всего: 19



Какие есть аргументы в пользу того, чтобы в языке вообще были операторы?


--------------------
You're face to face
With man who sold the world
PM   Вверх
502
Дата 6.12.2011, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Я всегда прав
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 16.7.2011

Репутация: нет
Всего: 4



Цитата(newbee @  6.12.2011,  10:25 Найти цитируемый пост)
Какие есть аргументы в пользу того, чтобы в языке вообще были операторы? 

Код читабельнее  smile 
PM MAIL   Вверх
newbee
Дата 6.12.2011, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: 1
Всего: 19



Цитата(502 @  6.12.2011,  11:28 Найти цитируемый пост)
Код читабельнее
Субъективно. В противовес могу сказать, что без специальных операторов код единообразен, что субъективно также положительно сказывается на читабельности, а объективно упрощает компилятор и косвенно положительно сказывается на возможностях метапрограммирования на этом языке.

По сабжу же... Плюсы: язык становится гибче. Минус: потенциально код становится более "опасным" и "удивительным".


--------------------
You're face to face
With man who sold the world
PM   Вверх
502
Дата 6.12.2011, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Я всегда прав
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 16.7.2011

Репутация: нет
Всего: 4



Цитата(newbee @  6.12.2011,  10:40 Найти цитируемый пост)
 код становится более "опасным"

в чем опасность?

Цитата(newbee @  6.12.2011,  10:40 Найти цитируемый пост)
 "удивительным"

возможно
PM MAIL   Вверх
azesmcar
Дата 6.12.2011, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата(newbee @  6.12.2011,  10:40 Найти цитируемый пост)
потенциально код становится более "опасным" и "удивительным". 

Да, вообще это удивительно, когда написано что-то вроде
Код

x = ((y + 10) * z) / u;

и совершенно непонятно что делает этот оператор, гораздо логичнее и понятнее написать
Код

math.div(mat.mul(math.add(x, 10), z), u);


PM   Вверх
502
Дата 6.12.2011, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Я всегда прав
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 16.7.2011

Репутация: нет
Всего: 4



Цитата(newbee @  6.12.2011,  10:40 Найти цитируемый пост)
В противовес могу сказать, что без специальных операторов код единообразен

по мне так
Код

(a + b + c*d - e) / h

читабельнее
Код

(/ (- (+ a b (* c d)) e) h)

 smile 
PM MAIL   Вверх
newbee
Дата 6.12.2011, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: 1
Всего: 19



Опасность вытекает из удивительности. Видя знакомое a + b ты никак не ожидаешь, что оно начнет удалять файлы из твоего домашнего каталога. Утрирую, но, думаю, мысль должна быть ясна.


--------------------
You're face to face
With man who sold the world
PM   Вверх
azesmcar
Дата 6.12.2011, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата(502 @  6.12.2011,  10:14 Найти цитируемый пост)
Какие аргументы есть чтобы язык не поддерживал перегрузку операторов? 

Перегрузка операторов иногда бывает довольно полезной, просто надо знать где и как ее использовать. Скажем установка обработчика события на класс оператором + это извращение. Перегруженный оператор должен делать то, чего от него ждет пользователь, т.е. + это математический плюс а не добавление чего-то к чему либо. Я бы и из string-а убрал этот оператор, но к нему уже все привыкли.

PM   Вверх
502
Дата 6.12.2011, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Я всегда прав
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 16.7.2011

Репутация: нет
Всего: 4



Цитата(newbee @  6.12.2011,  10:49 Найти цитируемый пост)
Видя знакомое a + b ты никак не ожидаешь, что оно начнет удалять файлы из твоего домашнего каталога

я такого не ожидаю и от метода add
PM MAIL   Вверх
azesmcar
Дата 6.12.2011, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата(newbee @  6.12.2011,  10:49 Найти цитируемый пост)
Опасность вытекает из удивительности. Видя знакомое a + b ты никак не ожидаешь, что оно начнет удалять файлы из твоего домашнего каталога. Утрирую, но, думаю, мысль должна быть ясна. 

Это не значит, что надо запрещать операторы, просто надо запрещать извращенцам писать код smile 
Индокод можно на любом языке написать и без перегрузки операторов.

Добавлено через 4 минуты и 33 секунды
Цитата(502 @  6.12.2011,  10:51 Найти цитируемый пост)
я такого не ожидаю и от метода add 

Зря, эти методы очень коварны smile 

Это сообщение отредактировал(а) azesmcar - 6.12.2011, 10:52
PM   Вверх
newbee
Дата 6.12.2011, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: 1
Всего: 19



502, azesmcar, вы б читали, что комментируете... Про потенциальную опасность и удивительность я писала в рамках обсуждаемой темы "давать перегружать операторы или нет". Естественно на перегруженные функции это тоже распространяется...

Добавлено через 56 секунд
Цитата(502 @ 6.12.2011,  11:48)
Цитата(newbee @  6.12.2011,  10:40 Найти цитируемый пост)
В противовес могу сказать, что без специальных операторов код единообразен

по мне так
Код

(a + b + c*d - e) / h

читабельнее
Код

(/ (- (+ a b (* c d)) e) h)

 smile

Я и говорю, субъективизм. Мне обе записи понятны, вторая даже лучше благодаря четкой структурированности.

Добавлено через 2 минуты и 2 секунды
Еще! Отказываясь от операторов мы забываем о такой головной боли (особенно начинающих программистов) как порядок выполнения операторов.


--------------------
You're face to face
With man who sold the world
PM   Вверх
azesmcar
Дата 6.12.2011, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата(newbee @  6.12.2011,  10:59 Найти цитируемый пост)
Про потенциальную опасность и удивительность я писала в рамках обсуждаемой темы "давать перегружать операторы или нет". Естественно на перегруженные функции это тоже распространяется...

Предлагаете и перегрузку функций запретить?
Удивительным и опасным код делает не какая либо возможность языка, а кривые руки программиста.

Это сообщение отредактировал(а) azesmcar - 6.12.2011, 11:01
PM   Вверх
502
Дата 6.12.2011, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Я всегда прав
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 16.7.2011

Репутация: нет
Всего: 4



Цитата(newbee @  6.12.2011,  10:59 Найти цитируемый пост)
Естественно на перегруженные функции это тоже распространяется...

это распространяется на любые функции  smile

Добавлено через 1 минуту и 31 секунду
Цитата(newbee @  6.12.2011,  10:59 Найти цитируемый пост)
Еще! Отказываясь от операторов мы забываем о такой головной боли (особенно начинающих программистов) как порядок выполнения операторов. 

хороший аргумент  smile 
PM MAIL   Вверх
newbee
Дата 6.12.2011, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: 1
Всего: 19



Цитата(azesmcar @  6.12.2011,  12:01 Найти цитируемый пост)
Предлагаете и перегрузку функций запретить?
Удивительным и опасным код делает не какая либо возможность языка, а кривые руки программиста.
Я не предлагаю, а констатирую  smile
Цитата(502 @  6.12.2011,  11:14 Найти цитируемый пост)
Какие аргументы есть чтобы язык не поддерживал перегрузку операторов? 


Удивительность перегрузки - это аргумент, я его констатировала. Мы можем или отказаться от гибкости и запретить перегрузку, или соглашаемся на дубовость, но ### надежную.


--------------------
You're face to face
With man who sold the world
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.0864 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.