Показать сообщение отдельно
Старый 01.04.2007, 15:08   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Maxim Gorbunov Посмотреть сообщение
Иногда компилятор ругается без причины, например
Дело в том, что компилятор допускает одинаковые имена для типов и переменных.
Если переменная имеет точно такое же название, что и тип, то компилятор:
1. думает, что продолжается блок определения переменных,
2. встречает после имени типа недопустимую конструкцию
3. ругается.

Так, в приведенном выше примере, переменная называется object.
Но в системе есть тип object.
Поэтому компилятор "думает", что в первой строке идет определение переменной типа Object, встречает знак = вместо названия переменной и застывает в ступоре.

Точка с запятой дает понять компилятору, что блок определения переменных кончился. После точки с запятой компилятор ожидает lvalue и правильно разбирается с одинаковыми именами переменных и типов.
__________________
полезное на axForum, github, vk, coub.