Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
programmer92ua
1 / 1 / 0
Регистрация: 15.04.2013
Сообщений: 29
25.08.2013, 14:54     Не могу выполнить пример из книги #1
Добрый день начал изучать 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 << "."; 
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2013, 14:54     Не могу выполнить пример из книги
Посмотрите здесь:

Пример из книги не работает. C++
Пример из книги Лафоре C++
пример из книги страуструпа C++
C++ Пример из книги Лафоре
C++ Непонятный пример из книги
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nekto
342 / 287 / 10
Регистрация: 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 &)'
zer0mail
2189 / 1872 / 187
Регистрация: 03.07.2012
Сообщений: 6,664
Записей в блоге: 1
25.08.2013, 15:03     Не могу выполнить пример из книги #3
Похоже, имя используется в std. Замени на count0, например.
programmer92ua
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 можно спокойно занести в список зарезервированных слов?
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
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"
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 16:31     Не могу выполнить пример из книги #6
Цитата Сообщение от programmer92ua Посмотреть сообщение
Компилятор VS ругается (IntelliSense: count не является однозначным 2 раза 13 и 21 строки). Не могу понять почему?
А я не могу понять: почему у меня НЕ ругается?
Миниатюры
Не могу выполнить пример из книги  
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
25.08.2013, 16:43     Не могу выполнить пример из книги #7
Цитата Сообщение от programmer92ua Посмотреть сообщение
Не могу понять почему?
потому что
Цитата Сообщение от programmer92ua Посмотреть сообщение
C++
1
using namespace std;
В STL есть алгоритм std::count

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

Цитата Сообщение от programmer92ua Посмотреть сообщение
а как можно просмотреть что там в std
Например, раскурить стандарт + документацию к компилятору
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 16:46     Не могу выполнить пример из книги #8
Croessmah, у мня почему не ругается?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
25.08.2013, 16:49     Не могу выполнить пример из книги #9
Цитата Сообщение от alsav22 Посмотреть сообщение
Croessmah, у мня почему не ругается?
Да кто ж его знает. Может студии разных версий и в файле iostream Вашего компилятора этот алгоритм неявно не подключается, а у ТС подключается.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
25.08.2013, 16:52     Не могу выполнить пример из книги #10
Вот скриншот то еще скажете что врем
Не могу выполнить пример из книги
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 16:55     Не могу выполнить пример из книги #11
Да, ТС не указал студию... Кстати, mingv тоже ошибки не выдаёт... Но согласен, что лучше так не делать.

Добавлено через 55 секунд
Цитата Сообщение от Croessmah Посмотреть сообщение
Вот скриншот то еще скажете что врем
А мой скрин тогда как же?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 16:57     Не могу выполнить пример из книги #12
Ну тогда, вот вам ещё...
Миниатюры
Не могу выполнить пример из книги  
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
25.08.2013, 16:59     Не могу выполнить пример из книги #13
Цитата Сообщение от alsav22 Посмотреть сообщение
А мой скрин тогда как же?
Из 10-ой студии? А мой из 12-ой

Добавлено через 1 минуту
Если что, то вот Вам еще пример:
"error C2872: неоднозначный символ" при переменной count
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 17:01     Не могу выполнить пример из книги #14
Цитата Сообщение от Croessmah Посмотреть сообщение
Из 10-ой студии? А мой из 12-ой
Ну, тут уж, что сказать... 12-я - это ж... не 10-я...
mingv тоже не прав?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2013, 17:05     Не могу выполнить пример из книги
Еще ссылки по теме:

Пример с книги не компилируется! C++
C++ пример из книги
C++ Пример из книги- ну, напутан

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
25.08.2013, 17:05     Не могу выполнить пример из книги #15
Цитата Сообщение от alsav22 Посмотреть сообщение
mingv тоже не прав?
В данном случае тут все правы, ибо что во что подключается определяется реализацией, а не стандартом.
Yandex
Объявления
25.08.2013, 17:05     Не могу выполнить пример из книги
Ответ Создать тему
Опции темы

Текущее время: 11:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru