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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 114, средняя оценка - 4.70
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
#1

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

01.07.2010, 13:17. Просмотров 17151. Ответов 20
Метки нет (Все метки)

зачем часто писать std:: если можно один раз using namespace std?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2010, 13:17     Зачем часто писать std::, если можно один раз using namespace std?
Посмотрите здесь:

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами - C++
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же числа, но не в виде строк, а в виде...

Std::setfill - зачем - C++
std::setfill - расскажите что означает этот код и как его приминяти

Стандартный поток и STL (std::copy to std::cout) - C++
#include &lt;iostream&gt; #include &lt;sstream&gt; #include &lt;algorithm&gt; #include &lt;functional&gt; #include &lt;string&gt; using namespace std; ...

В чем отличия между std::cref() и std::bind()? - C++
В документации не понял, что делает bind() ? И чем отличается cref() от операции взятия адреса? int x; int *y = &amp;x; ...

Стоит ли очищать в деструкторе std::map , std::vecotor? - C++
У меня ещё один нубский вопрос :) Вот если в классе объявлены мапы и вектора, которые по ходу программы как то заполняются, нужно ли мне...

Какая реализация лучше? std::pointer_to_binary_function vs std::function - C++
Какая реализация (set_p или set_f) лучше /современнее / эффективнее ? pointer_to_binary_function в С++11 объявлен как deprecated. Правильно...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
01.07.2010, 18:29     Зачем часто писать std::, если можно один раз using namespace std? #16
Цитата Сообщение от nekogdamne Посмотреть сообщение
Sanu0074, как я понял, комманда #define выполняет простую текстовую подстановку. В таком случае, не вижу разницы между #define и typedef.
# видите? Значит уже разница. #define подает комманду препроцессору, что PI есть 3,1415

Директива define позволяет связать идентификатор (мы будем называть этот идентификатор замещаемой частью) с лексемой (возможно, что пустой!) или последовательностью лексем (строка символов является лексемой, заключённой в двойные кавычки), которую называют строкой замещения или замещающей частью директивы define.

Например,

#define PI 3.14159
Идентификаторы, которые используют для представления констант, называют объявленными или символическими константами. Например, последовательность символов, располагаемая после объявленной константы PI, объявляет константу 3.14159. Препроцессор заменит в оставшейся части программы все отдельно стоящие вхождения идентификатора PI на лексему, которую транслятор будет воспринимать как плавающий литерал 3.14159.

Препроцессор выполняет грубую предварительную работу по замене замещаемых идентификаторов замещающими строками. В этот момент ещё ничего не известно об именах, поскольку транслятор фактически ещё не начинал своей работы. А потому следует следить за тем, чтобы замещаемые идентификаторы входили в состав объявлений лишь как элементы инициализаторов.

Рассмотрим несколько примеров. Директива препроцессора

#define PI 3.14159
Превращает корректное объявление

float PI;
в синтаксически некорректную конструкцию

float 3.14159;
А следующее определение правильное.

float pi = PI;
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
01.07.2010, 18:30     Зачем часто писать std::, если можно один раз using namespace std? #17
Цитата Сообщение от Sanu0074 Посмотреть сообщение
внимательно читайте текст темы:
зачем часто писать std:: если можно один раз using namespace std?
И где здесь просьба рассказать, что входит в std?
Цитата Сообщение от nekogdamne Посмотреть сообщение
как я понял, комманда #define выполняет простую текстовую подстановку.
Именно.
Цитата Сообщение от nekogdamne Посмотреть сообщение
В таком случае, не вижу разницы между #define и typedef.
Где вы видели, чтобы typedef осуществлял текстовую подстановку?
nekogdamne
1 / 1 / 0
Регистрация: 30.06.2010
Сообщений: 7
01.07.2010, 18:43     Зачем часто писать std::, если можно один раз using namespace std? #18
Lavroff, я имел в виду разницу по функциональности.
Но я уже понял, в чём различие. К примеру, выражение:
C++
1
#define unsigned short int usint
неверное. Вместо него надо использовать
C++
1
typedef unsigned short int usint;
neske
1479 / 846 / 75
Регистрация: 26.03.2010
Сообщений: 2,904
01.07.2010, 18:44     Зачем часто писать std::, если можно один раз using namespace std? #19
Правильно поняли
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,190
Завершенные тесты: 1
01.07.2010, 19:33     Зачем часто писать std::, если можно один раз using namespace std? #20
Цитата Сообщение от nekogdamne Посмотреть сообщение
C++
1
#define unsigned short int usint
неверное.
Почему же неверное?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#define unsigned short int usint
void qq()
{
    unsigned;
}
unsigned()
{
    return 55;
}
int main()
{
    unsigned = 99;
}
:-)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2010, 09:28     Зачем часто писать std::, если можно один раз using namespace std?
Еще ссылки по теме:

Алгоритм std::find_end - аналог std::search_n - C++
Есть два семейства стандартных алгоритмов: std::search и std::find_end. Первое семейство предназначено для поиска первого совпадения...

Зачем std::set имеет в наличии не константный итератор? - C++
Сабж. Зачем? Вроде бы смысла нету. Элементы std::set нельзя модифицировать. Нельзя написать std::set&lt;int&gt; s{1,2,4,5}; auto it =...

Зачем используют конструкцию в длинных ветвлениях else if, если можно просто использовать один if - C++
Добрый День! У меня очень простой вопрос. Зачем используют конструкцию в длинных ветвлениях else if, если можно просто использовать...

Std::ios::binary зачем нужно это для записи структур - C++
зачем нужно это для записи структур ? гугл чёткого ответа не дал


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

Или воспользуйтесь поиском по форуму:
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
02.07.2010, 09:28     Зачем часто писать std::, если можно один раз using namespace std? #21
Sanu0074, если хотите обсудить define - создайте отдельную тему.
Прекращаем оффтопить
Yandex
Объявления
02.07.2010, 09:28     Зачем часто писать std::, если можно один раз using namespace std?
Ответ Создать тему
Опции темы

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