7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
1

Пространство имен

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

Я часто встречаю в книгах, туторах, что объявлять пространство имен в больших проектах нельзя(не рекомендуемо), но нигде не сказано почему... Подскажите вы хоть, пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.08.2013, 19:34
Ответы с готовыми решениями:

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

Пространство имен
Как составить код, когда необходимо использовать классы и методы из разных пространств имен. К...

Пространство имен
Здравствуйте, имеется код : triangle.h #ifndef TRIANGLE_H_INCLUDED #define...

пространство имен
Один практикующий программист сказал мне, что пространство именusing namespace std; нежелательно...

4
3254 / 2056 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
04.08.2013, 19:35 2
Ты о using namespace std; ?
0
погромист
415 / 251 / 30
Регистрация: 27.08.2012
Сообщений: 550
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
1404 / 646 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
04.08.2013, 19:42 4
Misterkat, ну... объявлять нэймспейс в больших проектах - рекомендуемо, т.к. будет меньше вероятности встретить несколько ф-ций\переменных с одинаковыми именами, а с namespace будет проще, т.к. нужно будет обращаться к ф-циям, переменным и т.д. юзая полное имя, например, My_namespace::x = 5(если нету using).

Using namespace не нужно использовать в больших проектах потому, что, например, объявленный в хедерах using передается на все файлы, которые включают его, поэтому в файлах, которые инклудят этот хедер, может вызываться совсем не та функция, которая нужна была.
1
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2013, 19:46
Помогаю со студенческими работами здесь

Пространство имен
Зачем пространство имен в программировании я чет не понимаю? У мну в учебнике отак написано....

Пространство имен
Подскажите, пожалуйста. Если я создам своё пространство имен и в нем создам функцию, например,...

Пространство имен std
В книге Дейтела (как, и в других источниках) написано, что можно написать using namespace std, а...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru