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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Misterkat
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 83
#1

Пространство имен - C++

04.08.2013, 19:34. Просмотров 519. Ответов 4
Метки нет (Все метки)

Я часто встречаю в книгах, туторах, что объявлять пространство имен в больших проектах нельзя(не рекомендуемо), но нигде не сказано почему... Подскажите вы хоть, пожалуйста.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2013, 19:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Пространство имен (C++):

пространство имен - C++
Один практикующий программист сказал мне, что пространство именusing namespace std; нежелательно объявлять в начале программы, а лучше...

Пространство имен - C++
Зачем пространство имен в программировании я чет не понимаю? У мну в учебнике отак написано. Пространство имен, локализуя видимость...

пространство имен - C++
Здравствуйте! У меня вопрос...В си есть такая функция printf, которая аналогична функции С++ cout. Почему, когда нам необходимо...

Пространство имен - C++
Как составить код, когда необходимо использовать классы и методы из разных пространств имен. К примеру используется cout из std и...

Пространство имен - C++
Здравствуйте, имеется код : triangle.h #ifndef TRIANGLE_H_INCLUDED #define TRIANGLE_H_INCLUDED namespace TRG { struct...

Пространство имен - C++
Подскажите, пожалуйста. Если я создам своё пространство имен и в нем создам функцию, например, abc() и при использовании в main() using...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
0x10
2464 / 1636 / 238
Регистрация: 24.11.2012
Сообщений: 4,031
04.08.2013, 19:35 #2
Ты о using namespace std; ?
0
coloc
погромист
410 / 246 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
04.08.2013, 19:39 #3
Быть может объявлять стандартное пространство имен? Делается это во избежании коллизии имен. Вот например, я имею код ( неудачный пример, но думаю суть поймешь )
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
using namespace std;
 
void cout( const char *a ) {
    return;
}
 
int main() {
    cout << "Hello world!";
    return 0;
}
если закомментировать using namespace std и написать std::cout все скомпилируется.
1
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
04.08.2013, 19:42 #4
Misterkat, ну... объявлять нэймспейс в больших проектах - рекомендуемо, т.к. будет меньше вероятности встретить несколько ф-ций\переменных с одинаковыми именами, а с namespace будет проще, т.к. нужно будет обращаться к ф-циям, переменным и т.д. юзая полное имя, например, My_namespace::x = 5(если нету using).

Using namespace не нужно использовать в больших проектах потому, что, например, объявленный в хедерах using передается на все файлы, которые включают его, поэтому в файлах, которые инклудят этот хедер, может вызываться совсем не та функция, которая нужна была.
1
Misterkat
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 83
04.08.2013, 19:46  [ТС] #5
Цитата Сообщение от coloc Посмотреть сообщение
Быть может объявлять стандартное пространство имен? Делается это во избежании коллизии имен. Вот например, я имею код ( неудачный пример, но думаю суть поймешь )
Код C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
void cout( const char *a ) {
return;
}
int main() {
cout << "Hello world!";
return 0;
}
если закомментировать using namespace std и написать std::cout все скомпилируется.
Цитата Сообщение от Dani Посмотреть сообщение
Misterkat, ну... объявлять нэймспейс в больших проектах - рекомендуемо, т.к. будет меньше вероятности встретить несколько ф-ций\переменных с одинаковыми именами, а с namespace будет проще, т.к. нужно будет обращаться к ф-циям, переменным и т.д. юзая полное имя, например, My_namespace::x = 5(если нету using).
Using namespace не нужно использовать в больших проектах потому, что, например, объявленный в хедерах using передается на все файлы, которые включают его, поэтому в файлах, которые инклудят этот хедер, может вызываться совсем не та функция, которая нужна была.
Спасибо, ну да, логично. Мог бы и сам додуматься.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2013, 19:46
Привет! Вот еще темы с ответами:

Пространство имен std - C++
В книге Дейтела (как, и в других источниках) написано, что можно написать using namespace std, а можно указывать std:: перед функциями. Но...

Класс и пространство имен - C++
Есть стэк, а он использует структуру как базовую единицу. Куда определить описание этой структуры - в пространство имен, а его включить в...

Пространство имен std - C++
Какой стиль лучше ? using std::cout; using std::endl; or using namespace std;

Пространство имен в многофайловной программе - C++
Всем привет! Yashman, у которого часто что-то не получается снова в сети с новой проблеммой! :) Вот написал программу, а она не...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.08.2013, 19:46
Ответ Создать тему
Опции темы

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