Андрей
Высший разум
(480490)
4 года назад
Операция "запятая" обычно используется в двух случаях:
1. В заголовке цикла for - когда надо произвести несколько инициализаций и/или модифицировать несколько переменных по завершении итерации. Здесь использовании операции как-то оправдать ещё можно.
for (i = 0, j = n; i < j; ++i, --j) - вполне типичный код для обработки массива с двух сторон (определение палиндрома, реверс массива и т. п.).
2. Внутри выражения - исключительно для того, чтобы уместить пачку вычислений в одной строке - вместо того, чтобы разбить такое выражение на несколько более простых и понятных. Трюкачество, проходящее по разряду "говнокод".
Леша ФадеевМастер (1139)
4 года назад
2,), вообще то, это, шифрование, специально, так задуманное, а, не, гавнокодерство.
Алексей Шаяхметов
Мыслитель
(8803)
4 года назад
Не встречал на практике.
Оно точно переопределяется?
Если да, то нужен затем же, зачем нужен оператор "+".
Ты же можешь переопределить оператор "+" так, чтобы он складывал вектора, например и возвращал (*this).
Так же и другой оператор с двумя параметрами можешь переопределить. Какая разница, что за оператор переопределяешь. Важно лишь число параметров.
Или вообще зачем нужна запятая безотносительно переопределения.
Может, и не нужна.
Пока не пришло в голову примера, где бы запятую нельзя было бы заменить пробелом.
Думаю...
Вот пример из C++, где все неоднозначно в случае, если есть 2 функции d - одна с одним аргументом, другая с двумя; и есть функция b, которая возвращает класс с переопределенным оператором "()" и есть функция b, которая возвращает, допустим, int.
d(b() (c))
d(b(),(c))
besidesМастер (2385)
4 года назад
Вообще-то есть запятая и оператор "запятая" В C++.
У Вас в примере это просто запятая !