Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.81/80: Рейтинг темы: голосов - 80, средняя оценка - 4.81
AKE
11 / 11 / 3
Регистрация: 09.05.2010
Сообщений: 384
1

Возникает ошибка с using namespace std;

14.05.2010, 00:16. Просмотров 16415. Ответов 17
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
#include "stdio.h"
#include "string.h"
#include "math.h"
#include "stdlib.h"
#include "stdafx.h"
#include "iostream.h"
using namespace std; //здесь ошибка
error C2871: 'std' : does not exist or is not a namespace

Microsoft VC++ 6.0
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2010, 00:16
Ответы с готовыми решениями:

Что использовать, std::cout или просто using namespace std?
Приветствую! Сейчас учу С++, постигаю азы так сказать. В арсенале две книги - Джефф Кент, ...

Использовать using namespace std; или каждый раз прописывать std:: . ?
Как безопаснее и рациональнее поступать? Как в больших проектах поступают на этот счет?

Зачем часто писать std::, если можно один раз using namespace std?
зачем часто писать std:: если можно один раз using namespace std?

Пространство имен - namespace std или std::
В каких случая лучше писать (std::cout) или просто прописать (namespace std) и почему ?

Std:: или using namespace std;
Вопрос к профессионалам. Меня давно интересуют такие вопросы: 1) Почему, многим, вроде бы не...

17
alex_x_x
бжни
2456 / 1664 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
14.05.2010, 00:24 2
вы должные включить заголовки, которые чтонибудь туда добавят, например #include <vector> #include <iostream>
0
AKE
11 / 11 / 3
Регистрация: 09.05.2010
Сообщений: 384
14.05.2010, 00:27  [ТС] 3
alex_x_x
А мне не нужно ничего туда добавлять...
Ошибка с потоковыми файлами...
0
Alexandoros
229 / 67 / 11
Регистрация: 02.06.2009
Сообщений: 280
14.05.2010, 12:35 4
.h убери в iostream
0
14.05.2010, 12:35
M128K145
Эксперт JavaЭксперт С++
8341 / 3562 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
14.05.2010, 21:22 5
AKE, в зависимости от того как вы создавали проект, вам может не понадобится std;
MS VC++ 6 позволяет как использовать, так и не использовать std
0
Evg
Эксперт CАвтор FAQ
20072 / 7637 / 586
Регистрация: 30.03.2009
Сообщений: 21,361
Записей в блоге: 30
15.05.2010, 08:47 6
Цитата Сообщение от AKE Посмотреть сообщение
error C2871: 'std' : does not exist or is not a namespace
namespace std появилось только в более поздних версиях стандарта Си++ и предназначен для того, чтобы втащить в него всё то, что описано в стандарте Си++ (чтобы проще было отделять мух от котлет). А в старых версиях стандарта (и, соответственно, в старых версиях компиляторах) этого namespace'а не было вообще.

К тому же раньше все заголовочные файлы от стандартных библиотек Си++ имели расширение .h: т.е. нужно было писать, например, #include <iostream.h>. В новых стандартах вся стандартная поддержка языка Си++ описана в заголовочных файлах без расширений: т.е. теперь надо писать #include <iostream>, но потом добавлять using namespace std; (либо ко всем глобалам обращаться через std, типа std::cout). Большинство современных компиляторов для совместимости поддерживают в том числе и старый вариант. Но в старых компиляторах нового варианта нет (потому что в те времена его ещё не изобрели).

Поэтому в твоём случае нужно просто удалить строку "using namespace std;" (поскольку ты использовал файл с расширением .h). Либо все подключаемые файлы стандартной библиотеки Си++ должны быть без .h (в твоём случае вместо iostream.h должно быть iostream)
2
-=ЮрА=-
Заблокирован
Автор FAQ
05.01.2012, 23:17 7
Evg, чисто для себя хочу узнать - здесь на форуме часто вижу std::cout и т.д.(и все с пеной у рта утверждают что без std:: не по стандарту)
В случае если использую только функции std;(обычная консоль) логичней и лаконичней для кода записать using namespace std; под хедерами и не загромождать код std:: или я не прав???
0
niXman
Эксперт С++
3206 / 1455 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
05.01.2012, 23:37 8
-=ЮрА=-, раскрытие пространства имен, весьма опасная привычка. это годится для хеловордов, или же для программ не использующих ничего кроме стандартной библиотеки.
0
Evg
Эксперт CАвтор FAQ
20072 / 7637 / 586
Регистрация: 30.03.2009
Сообщений: 21,361
Записей в блоге: 30
06.01.2012, 00:28 9
-=ЮрА=-, ну, например, ты можешь написать проект с 100500 функциями и называть их "a", "b", "c", ... - это будет по стандарту, но затруднит тебе жизнь. С std:: то же самое. Если это "домашняя" программа на два экрана - то проще using использовать, в противном случае лучше std::. Да и вообще лучше заранее приучать себя к тому, что является "правильным" в случаях, когда большой проект пишут несколько людей
1
Gepar
1182 / 538 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
06.01.2012, 00:45 10
AKE, дело в том что написав
include "iostream.h" Вы уже подключили iostream с указанием что потоки cin, cout а также манипуляторы вроде endl принадлежат пространству имён std, тем не менее хотя строка
C++
1
using namespace std;
в вашем случае пользы не принесёт, проект и с ней должен нормально компилироваться, что и происходит в minigw, но почему-то не происходит в vs 6.0 (сам вот тоже проверил из интереса).
Но если подключить iostream в виде
C++
1
#include <iostream>
то тогда конфликтов у vs с пространствами имён не возникает так что либо пишите так либо не пишите using namespace std раз уж таким образом подключили нужные вам библиотеки.
0
Evg
Эксперт CАвтор FAQ
20072 / 7637 / 586
Регистрация: 30.03.2009
Сообщений: 21,361
Записей в блоге: 30
06.01.2012, 01:01 11
Для полноты картину ещё и сюда ссылку закину: include <?> для cout
0
alex_x_x
бжни
2456 / 1664 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
09.01.2012, 14:52 12
вообще это вопрос холивара, а не языка
0
Alejo
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 38
11.11.2012, 23:38 13
Цитата Сообщение от Evg Посмотреть сообщение
-=ЮрА=-, ну, например, ты можешь написать проект с 100500 функциями и называть их "a", "b", "c", ... - это будет по стандарту, но затруднит тебе жизнь. С std:: то же самое. Если это "домашняя" программа на два экрана - то проще using использовать, в противном случае лучше std::. Да и вообще лучше заранее приучать себя к тому, что является "правильным" в случаях, когда большой проект пишут несколько людей
Можно пример (желательно для новичка) в котором using namespace std; может повредить программе ?
0
alex_x_x
бжни
2456 / 1664 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
11.11.2012, 23:56 14
Цитата Сообщение от Alejo Посмотреть сообщение
Можно пример (желательно для новичка) в котором using namespace std; может повредить программе ?
LinkedList list;
0
Croessmah
++Ͻ
15466 / 8804 / 1689
Регистрация: 27.09.2012
Сообщений: 21,706
Записей в блоге: 2
Завершенные тесты: 2
12.11.2012, 00:01 15
Цитата Сообщение от Alejo Посмотреть сообщение
может повредить программе ?
как вариант:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
using namespace std;
 
bool nothrow;
int main(){
    nothrow=true;
    std::cin.get();
    return 0;
}
0
Alejo
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 38
12.11.2012, 00:53 16
CroessmahПоясните, что здесь не верно ? К nothrow будет применяться std ?
0
v.a.l.i.d
416 / 381 / 113
Регистрация: 21.09.2012
Сообщений: 913
12.11.2012, 01:07 17
Переменная nothrow уже есть в std:: const std::nothrow_t std::nothrow
Наверно из-за этого будет конфликт.
0
Миниатюры
Возникает ошибка с using namespace std;  
Alejo
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 38
12.11.2012, 01:10 18
Благодарю за пояснение.
0
12.11.2012, 01:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2012, 01:10

using namespace std
using namespace std; скажите плиз что означает ета строка и для чего она нужна?

std:: vs namespace
Тема не для холивара, объясните пожалуйста чем лучше std:: а не using namespace std ? Без...

using namespace std
Обьясните пожалуйста понятным языком, что такое пространство имен, и зачем нужна эта команда или...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru