![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 18.04.2010
Сообщений: 8
|
![]()
код:
Код:
ошибки: ||=== Глобальные переменные, Debug ===| \main.cpp||In function `int main()':| \main.cpp|14|error: use of `count' is ambiguous| \main.cpp|7|error: first declared as `int count' here| C:\Program Files\CodeBlocks\MinGW\bin\..\lib\g cc\mingw32\3.4.5\..\..\..\..\includ e\c++\3.4.5\bits\stl_algo.h|413|err or: also declared as `typename std::iterator_traits<_Iterator>: ![]() \main.cpp|14|error: `count' was not declared in this scope| \main.cpp|14|warning: unused variable 'count'| \main.cpp||In function `void func1()':| \main.cpp|22|error: use of `count' is ambiguous| \main.cpp|7|error: first declared as `int count' here| C:\Program Files\CodeBlocks\MinGW\bin\..\lib\g cc\mingw32\3.4.5\..\..\..\..\includ e\c++\3.4.5\bits\stl_algo.h|413|err or: also declared as `typename std::iterator_traits<_Iterator>: ![]() \main.cpp|22|error: `count' was not declared in this scope| \main.cpp|22|warning: unused variable 'count'| ||=== Build finished: 8 errors, 2 warnings ===| Ребят помогите, не могу понять в чем моя здесь ошибка. Последний раз редактировалось ACE Valery; 27.11.2012 в 18:32. |
![]() |
![]() |
![]() |
#2 | ||
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
0) Программный код оформляется тегом форума CODE.
Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#3 | |
Регистрация: 18.04.2010
Сообщений: 8
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 | |
Регистрация: 18.04.2010
Сообщений: 8
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#5 | |
Регистрация: 18.04.2010
Сообщений: 8
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Нет подвоха, просто компилятор вас предупреждает, что возможен конфликт, ибо не ясно, какую из двух переменных вы имели ввиду.
Почитайте: http://en.wikipedia.org/wiki/Variable_shadowing |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]() Цитата:
Когда Вы написали #include <iostream>, Вы тем самым включили в программу весь текст заголовочного файла библиотеки iostream. В нём, среди прочего, объявлен идентификатор std::count. Дальше Вы написали using namespace std - эта директива позволяет не писать префикс std:: перед идентификаторами. Дальше Вы попытались объявить переменную count, и компилятор крепко задумался. Я его хорошо понимаю. Представьте на секунду, что он позволил бы подобное объявление. Тогда в func1, чем следовало бы счесть count - count из Вашего кода, или std::count? Способа различить нет, так что компилятор превентивно, обнаружив "повторное", с его точки зрения, объявление идентификатора count, отрапортовал об ошибке, по мере сил объяснив, что именно ему не нравится. Увы, слова его не были услышаны... |
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 18.04.2010
Сообщений: 8
|
![]()
спасибо, примерно понятно, проще переименовать. но вот, что интересно: почему в другом приложении компиляция произошла без ошибок? получается каждое приложение по разному воспринимает суть кода?
|
![]() |
![]() |
![]() |
#9 |
Регистрация: 18.04.2010
Сообщений: 8
|
![]()
а вот что пишет автор книги по этому поводу:
"Несмотря на то что переменная count не объявляется ни в функции main(), ни в функции func1(), обе они могут ее использовать. Но в функции func2() объявляется локальная переменная count. Здесь при обращении к переменной count выполняется доступ к локальной, а не к глобальной переменной. Важно помнить, что, если глобальная и локальная переменные имеют одинаковые имена, все ссылки на "спорное" имя переменной внутри функции, в которой определена локальная переменная, относятся к локальной, а не к глобальной переменной. |
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка при компиляции... | Тамарочка | Общие вопросы C/C++ | 3 | 05.12.2011 00:53 |
Ошибка при компиляции | Banner | Помощь студентам | 2 | 20.02.2011 13:09 |
Ошибка при компиляции | vovchok777 | Общие вопросы C/C++ | 1 | 26.12.2010 16:07 |
Ошибка при компиляции | 7B! | Общие вопросы .NET | 7 | 08.01.2010 13:11 |
Ошибка при компиляции | zak | Общие вопросы C/C++ | 2 | 11.12.2007 18:24 |