• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Вопрос Что такое using namespace std?

  • Автор темы Автор темы placey
  • Дата начала Дата начала
fff
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
24 Ноя 2020
Сообщения
112
Реакции
21
Что такое пространство имен в целом? И правильно ли я понял, что функция include добавляет библиотеку?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
чтоб не писать постоянно std::
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
держи братка, только ради тебя!1!1111!!!!!!!
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Чел, не стоит на каждый вопрос создавать тему) Ответы на большую часть вопросов можно просто нагуглить. Но так и быть.

Что такое пространство имен в целом?

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

Пример:
Код:
Expand Collapse Copy
namespace Math
{
    float Sqrt(int  iNumber)
    {
        float flSqrt = iNumber / 2;
        float flTemp = 0;

        while (flSqrt != flTemp)
        {
            flTemp = flSqrt;
            flSqrt = (iNumber / flTemp + flTemp) / 2;
        }

        return flSqrt;
    }

}

namespace FastMath
{
    float Sqrt(const float& flValue) const
    {
        union { int i; float f; } u;
        u.i = 0x1FB5AD00 + (*(int*)&flValue >> 1);
        u.f = flValue / u.f + u.f;
        return flValue / u.f + u.f * 0.25f;
    }

}

И использовать это так:
Код:
Expand Collapse Copy
int main()
{
    std::cout << Math::Sqrt(25) << std::endl;
    std::cout << FastMath::Sqrt(25) << std::endl;
    
    return 0;
}

Неймспесы созданы для того, чтобы твой код выглядел структурированным и хорошо читался. Глобальные неймспесы - зло. Если ты реализовываешь какой либо функционал, он обязательно должен жить в неймспейсе.

что функция include добавляет библиотеку?

include не функция, а дериктива. Почитай лучше здесь
Пожалуйста, авторизуйтесь для просмотра ссылки.


Что такое using namespace std?
Это означает, что внутри файла будет обеспечен доступ ко всем членам нейспейса std без необходимости обращения к ним напрямую через std::
 
просто в начале кода ее пишешь и всё
Ужасная практика, к такому даже не стоит привыкать. В современных реалиях такое позволительно использовать только на соревнованиях по спортивному программированию, где секунды решают.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ужасная практика, к такому даже не стоит привыкать. В современных реалиях такое позволительно использовать только на соревнования по спортивному программированию, где секунды решают.
я не кодер, лично мне похуй, что и как
 
Что такое пространство имен в целом? И правильно ли я понял, что функция include добавляет библиотеку?
ну тип чтобы достать что-то из namespace тебе надо написать его имя, :: и то что тебе надо, а если ты написал "using namespace ", то необязательно
 
Что такое пространство имен в целом
Пространство имен определяет область видимости символов (переменных, функций, классов, и всего что имеет имя).
По умолчанию весь код пишется в глобальной области видимости, и доступен ото всюду.
Но ты можешь обернуть его в неймспейс вида namespace имя_неймспейса { /* код */ } и обратиться к символам внутри него можно будет через префикс имя_неймспейса::
Так же делает стандартная библиотека, весь свой функионал она оборачивает в std, и использовать его ты можешь прописав std:: перед именем.
Но кроме этого, можно использовать неймспейсы, написав using namespace std; ты открываешь простанство имен std для глобального пространства, так что все имена оттуда доступны тебе без префикса.
В целом это не очень хорошая идея, т.к. могут быть конфликты имен, и зачастую лучше использовать префикс.
 
Это используется для определения пространства имен std, который используется для написания простецких функций внутри iostream, ты можешь создать свой неймспейс используя namespace YourName { } и затем добавить в него функции вызвав ее с помощью YourName::somefunc();, чтобы не указывать на пространство имен существует using namespace, используется ситуативно и в основном для удобства.
 
using namespace std; сообщает компилятору, что мы хотим использовать всё, что находится в пространстве имен std, так что, если компилятор найдет имя, которое не сможет распознать, он будет проверять его наличие в пространстве имен std.
 
Назад
Сверху Снизу