November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Friday, February 19th, 2010 12:09 pm

наглядный пример: жуткий глюк с областями видимости

Оригинал этой записи. Комментировать можно тут или там.

Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме

Friday, February 19th, 2010 11:49 am (UTC)
Почему не может? Вот вопрос с тем, надо ли давать переопределять уже определенные переменные - неоднозначный. Хотя уж точно не надо делать это неявно.

Грубо говоря:
{
int i = 1;
{
i = 2; // явно просто присваивание переменной из родительской области видимости
int i = 3; // а вот здесь чего делаем? я бы ошибку выбрасывал, а то потом в коде каша будет.
}
}
(deleted comment)
Friday, February 19th, 2010 11:56 am (UTC)
Ну вот поэтому я склоняюсь к мысли, что компилятор должен взять в руки линейку и бить ей за такое по рукам.
Friday, February 19th, 2010 12:00 pm (UTC)
g++ -Wall даже не поперхнулся на этом примере.
я бы на его месте выдал предупреждение, что так делать не нужно, хотя, конечно, если очень хочется, то можно
Friday, February 19th, 2010 11:56 am (UTC)
для c++ такая конструкция валидна. внутри блока до объявления видна внешняя переменная, после объявления до конца блока - внутренняя.

другой вопрос, что за такой стиль программирования надо убивать на месте, независимо от языка
Friday, February 19th, 2010 07:09 pm (UTC)
+1.