Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/35: Рейтинг темы: голосов - 35, средняя оценка - 4.91
1 / 1 / 0
Регистрация: 15.04.2013
Сообщений: 29
1

Не могу выполнить пример из книги

25.08.2013, 14:54. Показов 6438. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день начал изучать C++, и уже столкнулся с первой проблемой не могу скомпилировать код ниже. Пример демонстрирует разницу между локальными и глобальными переменными, взят из книги Шилд Г. "С++ Базовый курс". Компилятор VS ругается (IntelliSense: count не является однозначным 2 раза 13 и 21 строки). Не могу понять почему?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
using namespace std;
 
void func1();
void func2();
int count;
 
int main()
{
    int i;
    for (int i=0; i<=10; i++)
    {
        count = i*2;
        func1();
    }
    return 0;
}
 
void func1() 
{
    cout << "count = " << count;
    cout << '\n';
    func2();
}
 
void func2() 
{
    int count;
    for (count=0; count<3; count++) cout << "."; 
    
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.08.2013, 14:54
Ответы с готовыми решениями:

Пример из Книги Б.Эккеля (не могу разобраться)
Только начал изучать язык по книге этого автора. Наткнулся на пример по параграфу switch,...

Пример из книги
Тут решил поизучать прерывания и почитал книгу Ревича Практическое применение микроконтроллеров AVR...

Пример из книги
Пытаюсь разобрать примеры из книги Харрингтона &quot;PHP-трюки&quot;. Трюк 3 (стр.46) Все более-менее...

Пример из книги
В учебнике Флэнагана написано, что типа можно использовать символы Юникода из других категорий,...

14
347 / 292 / 37
Регистрация: 23.03.2012
Сообщений: 838
25.08.2013, 14:59 2
C++
1
using namespace std;
Не советую открывать весь неймспейс. В данном случае идет конфликт из-за \vc\include\xutility(3251) : iterator_traits<_Iter>::difference_type std::count(_InIt,_InIt,const _Ty &)'
0
2664 / 2239 / 240
Регистрация: 03.07.2012
Сообщений: 8,141
Записей в блоге: 1
25.08.2013, 15:03 3
Похоже, имя используется в std. Замени на count0, например.
1
1 / 1 / 0
Регистрация: 15.04.2013
Сообщений: 29
25.08.2013, 15:07  [ТС] 4
Цитата Сообщение от Nekto Посмотреть сообщение
C++
1
using namespace std;
Не советую открывать весь неймспейс. В данном случае идет конфликт из-за \vc\include\xutility(3251) : iterator_traits<_Iter>::difference_type std::count(_InIt,_InIt,const _Ty &)'
Как выполнить пример тогда?

Добавлено через 4 минуты
Цитата Сообщение от zer0mail Посмотреть сообщение
Похоже, имя используется в std. Замени на count0, например.
Спасибо помогло, а как можно просмотреть что там в std, чтобы не получить такой ошибки, получается count можно спокойно занести в список зарезервированных слов?
0
383 / 281 / 31
Регистрация: 04.09.2009
Сообщений: 1,225
25.08.2013, 15:19 5
Цитата Сообщение от programmer92ua Посмотреть сообщение
Спасибо помогло, а как можно просмотреть что там в std, чтобы не получить такой ошибки, получается count можно спокойно занести в список зарезервированных слов?
Вся стандартная библиотека в std:: . Состаришься, пока посмотришь Вместо
C++
1
using namespace std;
используй
C++
1
using std::cout;
, тогда будет доступно только имя cout, и в случае конфликта с твоим собственным именем (count) компиллер выдаст ошибку . А если using namespace std; то ошибка проявится только в рантайме или при использовании конфликтного имени.
Почитай материал по теме "Селективная директива using"
1
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 16:31 6
Цитата Сообщение от programmer92ua Посмотреть сообщение
Компилятор VS ругается (IntelliSense: count не является однозначным 2 раза 13 и 21 строки). Не могу понять почему?
А я не могу понять: почему у меня НЕ ругается?
Миниатюры
Не могу выполнить пример из книги  
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
25.08.2013, 16:43 7
Цитата Сообщение от programmer92ua Посмотреть сообщение
Не могу понять почему?
потому что
Цитата Сообщение от programmer92ua Посмотреть сообщение
C++
1
using namespace std;
В STL есть алгоритм std::count

Цитата Сообщение от programmer92ua Посмотреть сообщение
чтобы не получить такой ошибки
не использовать using namespace

Цитата Сообщение от programmer92ua Посмотреть сообщение
а как можно просмотреть что там в std
Например, раскурить стандарт + документацию к компилятору
1
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 16:46 8
Croessmah, у мня почему не ругается?
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
25.08.2013, 16:49 9
Цитата Сообщение от alsav22 Посмотреть сообщение
Croessmah, у мня почему не ругается?
Да кто ж его знает. Может студии разных версий и в файле iostream Вашего компилятора этот алгоритм неявно не подключается, а у ТС подключается.
1
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
25.08.2013, 16:52 10
Вот скриншот то еще скажете что врем
Не могу выполнить пример из книги
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 16:55 11
Да, ТС не указал студию... Кстати, mingv тоже ошибки не выдаёт... Но согласен, что лучше так не делать.

Добавлено через 55 секунд
Цитата Сообщение от Croessmah Посмотреть сообщение
Вот скриншот то еще скажете что врем
А мой скрин тогда как же?
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 16:57 12
Ну тогда, вот вам ещё...
Миниатюры
Не могу выполнить пример из книги  
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
25.08.2013, 16:59 13
Цитата Сообщение от alsav22 Посмотреть сообщение
А мой скрин тогда как же?
Из 10-ой студии? А мой из 12-ой

Добавлено через 1 минуту
Если что, то вот Вам еще пример:
"error C2872: неоднозначный символ" при переменной count
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 17:01 14
Цитата Сообщение от Croessmah Посмотреть сообщение
Из 10-ой студии? А мой из 12-ой
Ну, тут уж, что сказать... 12-я - это ж... не 10-я...
mingv тоже не прав?
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
25.08.2013, 17:05 15
Цитата Сообщение от alsav22 Посмотреть сообщение
mingv тоже не прав?
В данном случае тут все правы, ибо что во что подключается определяется реализацией, а не стандартом.
0
25.08.2013, 17:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.08.2013, 17:05
Помогаю со студенческими работами здесь

| и || (Пример из книги)
Отрывок программы, где идет перегрузка оператора |. Истина - если хотя бы одна из координат !=0. А...

пример из книги
#include &lt;iostream.h&gt; long summa (int k,...){ int *pik=&amp;k; char *pc=(char *)pik; ...

Непонятный пример из книги
Не могу никак разобраться в одном маленьком примере из книги, речь идёт про условную операцию....

Пример с книги не работает
первый же пример с книги по вебгл не работает &lt;!DOCTYPE html&gt; &lt;html lang=“en&quot;&gt; &lt;head&gt; &lt;meta...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru