Почему несколько присвоений в одной строке считаются плохим стилем?

В С++ вы можете выполнять несколько присваиваний, делая это

x = y = z = 10;

Тем не менее, многие люди говорили мне, что это плохой стиль, и я не должен его использовать, не давая мне повода почему.

Может кто-нибудь объяснит мне, почему это считается плохим стилем?

Ответ 1

Это не по своей сути плохой стиль, но вы часто можете сделать код более понятным, выполнив только одно задание на строку и позволяя оптимизатору компилятора разобраться. Если вы используете стиль с несколькими присваиваниями, иногда бывает неясно, был ли x = y = z = 10; преднамеренным, или это была опечатка для чего-то вроде x = y = z + 10;. Всегда ограничивая себя одним присваиванием за каждое выражение, вы делаете его очевидным, когда появляются опечатки.

Ответ 2

Попробуйте эти определения:

int x;
bool y;
int z;
x = y = z = 10;

И удивляйтесь значению x.

Ответ 3

Нет проблем, если вы знаете, что все они должны быть одинаковыми.

например.

изменения

x = y = z = 10;

к

x = y = z = 15;

очень просто.

Если, однако, они произвольно одинаковы, отдельные назначения передают это, и их легче изменить индивидуально для тестирования.

x = 10;
y = 10;
z = 10;

to

x = 10;
y = 15;
z = 10;

лучше, чем разбить линию.

Ключ - это то, что вы говорите следующему программисту, чтобы посмотреть на код (или на себя через 6 месяцев).