Namespaces
Материал из cppreference.com
|
|
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google.
Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке. Щёлкните здесь, чтобы увидеть английскую версию этой страницы |
Пространства имен предоставляют метод для предотвращения конфликтов имен в крупных проектах.
Оригинал:
Namespaces provide a method for preventing name conflicts in large projects.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Символы объявлены внутри пространства имен блок помещают в именованной области, что предотвращает их ошибочно принимают за одинаковыми именами символов в других областях.
Оригинал:
Symbols declared inside a namespace block are placed in a named scope that prevents them from being mistaken for identically-named symbols in other scopes.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Несколько объявлений пространств имен с тем же именем разрешено, в результате чего пространство имен, включая все символы из всех таких заявлений.
Оригинал:
Multiple declarations of namespaces with the same name are allowed, resulting in a namespace including all symbols from all such declarations.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Содержание |
[править] Синтаксис
namespace ns_name { declarations }
|
(1) | |
inline namespace ns_name { declarations }
|
(2) | (начиная с C++11) |
ns_name::name
|
(3) | |
using namespace ns_name;
|
(4) | |
using ns_name::name;
|
(5) | |
[править] Объяснение
| Этот раздел не завершён |
# Декларацию пространства имен name.
Оригинал:
# Declaration of the namespace name.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
# Декларацию пространства имен name. Определения появится и name внутри и включающего имен
Оригинал:
# Declaration of the namespace name. Definitions will appear both inside name and its enclosing namespace
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
# Стандартный способ доступа к пространству имен содержания.
Оригинал:
# Standard way of accessing namespace content.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
# Чтобы все символы пространства имен, доступного в сфере использования директивы.
Оригинал:
# Making all symbols of a namespace accessible in the scope of the using directive.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
# Внесении конкретных символов имен доступных в рамках помощью директивы.
Оригинал:
# Making a specific symbols of a namespace accessible in the scope of the using directive.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править] Пример
Этот пример показывает, как использовать пространство имен, чтобы создать класс, который уже был назван в
std имен .
Оригинал:
This example shows how to use a namespace to create a class that already has been named in the
std namespace.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Запустить этот код
#include <vector> namespace vec { template< typename T > class vector { // ... }; } // of vec int main() { std::vector<int> v1; // Standard vector. vec::vector<int> v2; // User defined vector. v1 = v2; // Error: v1 and v2 are different object's type. { using namespace std; vector<int> v3; // Same as std::vector v1 = v3; // OK } { using vec::vector; vector<int> v4; // Same as vec::vector v2 = v4; // OK } return 0; }
[править] См. также
| псевдоним пространства имен | создает псевдоним существующих имен
Оригинал: creates an alias of an existing namespace Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |

