![]() |
#2 |
Участник
|
Дело в том, что компилятор допускает одинаковые имена для типов и переменных.
Если переменная имеет точно такое же название, что и тип, то компилятор: 1. думает, что продолжается блок определения переменных, 2. встречает после имени типа недопустимую конструкцию 3. ругается. Так, в приведенном выше примере, переменная называется object. Но в системе есть тип object. Поэтому компилятор "думает", что в первой строке идет определение переменной типа Object, встречает знак = вместо названия переменной и застывает в ступоре. Точка с запятой дает понять компилятору, что блок определения переменных кончился. После точки с запятой компилятор ожидает lvalue и правильно разбирается с одинаковыми именами переменных и типов. |
|