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

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

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

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

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

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

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,012
04.08.2013, 19:35     Пространство имен #2
Ты о using namespace std; ?
coloc
погромист
409 / 245 / 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 все скомпилируется.
Dani
1300 / 637 / 56
Регистрация: 11.08.2011
Сообщений: 2,280
Записей в блоге: 2
Завершенные тесты: 1
04.08.2013, 19:42     Пространство имен #4
Misterkat, ну... объявлять нэймспейс в больших проектах - рекомендуемо, т.к. будет меньше вероятности встретить несколько ф-ций\переменных с одинаковыми именами, а с namespace будет проще, т.к. нужно будет обращаться к ф-циям, переменным и т.д. юзая полное имя, например, My_namespace::x = 5(если нету using).

Using namespace не нужно использовать в больших проектах потому, что, например, объявленный в хедерах using передается на все файлы, которые включают его, поэтому в файлах, которые инклудят этот хедер, может вызываться совсем не та функция, которая нужна была.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2013, 19:46     Пространство имен
Еще ссылки по теме:

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

Включение класса в пространство имен - C++
Доброго времени суток! Имеется пространство имен, в котором планируют жить классы. Структура: namespace EVE { namespace Actions ...

Как узнать пространство имен? - C++
Здравствуйте, возникла ситуация, при которой нужно явно указать, к какому пространству имен относится функция Ellipse. Я только начал...

вопрос про глобальное пространство имен - C++
#include &lt;iostream&gt; namespace { int a = 1; } int main() { using std::cout; int a = 5;


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

Или воспользуйтесь поиском по форуму:
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 передается на все файлы, которые включают его, поэтому в файлах, которые инклудят этот хедер, может вызываться совсем не та функция, которая нужна была.
Спасибо, ну да, логично. Мог бы и сам додуматься.
Yandex
Объявления
04.08.2013, 19:46     Пространство имен
Ответ Создать тему
Опции темы

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