Что такое пространство имен, используемое для С++?

Что такое пространство имен, используемое для С++?

using namespace std;

Ответ 1

Пространство имен используется для предотвращения конфликтов имен.

Например:

namespace foo {
    class bar {
        //define it
    };
}

namespace baz {
    class bar {
        // define it
    };
}

Теперь у вас есть две строки имен классов, которые совершенно разные и раздельные благодаря расширению имен.

"Использовать пространство имен", которое вы показываете, так это то, что вам не нужно указывать пространство имен для использования классов в этом пространстве имен. т.е. std::string становится строкой.

Ответ 2

Он используется для предотвращения имени confilct, поэтому у вас могут быть два класса с одинаковым именем в разных пространствах имен.

Также он используется для категоризации ваших классов, если вы видели инфраструктуру .net, вы увидите, что пространства имен используются для категоризации классов. Например, вы можете определить пространство имен для классов сотрудников и пространство имен для классов задач, а оба пространства имён находятся в пространстве имен для классов компании, поскольку пространство имен может содержать подпространственные пространства имен.

Такое же пространство имен может существовать в разных файлах, поэтому using оно может быть полезно, поскольку оно позволит вам напрямую использовать все классы в пространствах имен в каждом файле #include d.

То, что я помню сейчас.

Ответ 3

Можно спросить, достаточно простой пары фигурных скобок {} достаточно для разрешения конфликта имен. Однако почему есть имя. Быстрый ответ, упомянутый выше, заключается в том, что с NameSpace мы получаем возможность открывать ту же область видимости в другом файле.