<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://man.deeptown.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://man.deeptown.org/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%B0_%D0%B8%D0%BC%D0%B5%D0%BD</id>
		<title>Пространства имен - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://man.deeptown.org/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%B0_%D0%B8%D0%BC%D0%B5%D0%BD"/>
		<link rel="alternate" type="text/html" href="http://man.deeptown.org/index.php?title=%D0%9F%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%B0_%D0%B8%D0%BC%D0%B5%D0%BD&amp;action=history"/>
		<updated>2026-05-19T12:13:30Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.20.2</generator>

	<entry>
		<id>http://man.deeptown.org/index.php?title=%D0%9F%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%B0_%D0%B8%D0%BC%D0%B5%D0%BD&amp;diff=491&amp;oldid=prev</id>
		<title>Korvin: Новая: Как уже было сказано в предыдущем разделе, для организации кода применяются пакеты. Каждый пакет пред...</title>
		<link rel="alternate" type="text/html" href="http://man.deeptown.org/index.php?title=%D0%9F%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%B0_%D0%B8%D0%BC%D0%B5%D0%BD&amp;diff=491&amp;oldid=prev"/>
				<updated>2008-04-02T08:35:39Z</updated>
		
		<summary type="html">&lt;p&gt;Новая: Как уже было сказано в предыдущем разделе, для организации кода применяются пакеты. Каждый пакет пред...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Как уже было сказано в предыдущем разделе, для организации кода применяются пакеты. Каждый пакет представляет собой контейнер, содержащий в себе сущности вроде классов, функций и глобальных переменных. При этом, в разных пакетах могут содержаться одноименные сущности, например классы. Более того, пользователь этих пакетов может импортировать оба пакета и использовать оба этих класса независимо. Достигается это введением концепции пространств имен. При этом, имена всех сущностей предворяются именем контейнера в котором они расположены. Таким образом, полное имя двух одноименных классов, расположенных в разных пакетах, все равно будет различным и конфликта имен не происходит. &lt;br /&gt;
&lt;br /&gt;
Например, в стандартной библиотеке существует класс &amp;lt;tt&amp;gt;Node&amp;lt;/tt&amp;gt;, представляющий элемент файловой системы [[DISS]]. Одновременно с ним, в пакете World существует класс &amp;lt;tt&amp;gt;Node&amp;lt;/tt&amp;gt;, представляющий уже элемент иерархии графических объектов.&lt;br /&gt;
&lt;br /&gt;
При объявлении инстанций таких классов, помимо самого имени класса необходимо указывать и имя пакета, отделяемое с помощью символа двойное двоеточие (&amp;lt;tt&amp;gt;::&amp;lt;/tt&amp;gt;):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;kpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
package MyPackage;&lt;br /&gt;
&lt;br /&gt;
//import std; //(стандартная библиотека импортируется автоматически)&lt;br /&gt;
import World; //подключаем пакет управления миром&lt;br /&gt;
&lt;br /&gt;
var   std::Node node1 = std::Storage.open('test.txt', std::Node.MODE_READ);&lt;br /&gt;
var World::Node node2 = World::Graphics.sceneManager.root.createChildNode('MyNode');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В этом примере создаются две переменные, ''node1'' и ''node2'', инициализируемые инстанциями классов std::Node и World::Node соответственно. Везде где используются классы из импортируемых пакетов, применяются полные пути к классам. Однако, на практике писать префиксы неудобно. Для облегчения работы программиста, предусмотрена специальная конструкция для автоматической подстановки пространств имен. Для ее использования, необходимо указать ключевое слово &amp;lt;tt&amp;gt;'''using'''&amp;lt;/tt&amp;gt;, следом за которым записать полный путь к необходимому пространству имен.&lt;br /&gt;
&lt;br /&gt;
После этого, имена классов можно указывать без префиксов. Поиск по пакетам будет осуществляться последовательно, в соответствии с очередностью их импортирования. Считается, что стандартная библиотека импортируется и используется по умолчанию. Поэтому, имена базовых классов, таких как &amp;lt;tt&amp;gt;int&amp;lt;/tt&amp;gt; всегда записывались без префиксов.&lt;br /&gt;
&lt;br /&gt;
Перепишем предыдущий пример с использованием конструкции &amp;lt;tt&amp;gt;'''using'''&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;kpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
package MyPackage;&lt;br /&gt;
&lt;br /&gt;
//import std; // (стандартная библиотека импортируется и используется автоматически)&lt;br /&gt;
//using std;  // (стандартная библиотека используется автоматически)&lt;br /&gt;
&lt;br /&gt;
import World; // подключаем пакет управления миром&lt;br /&gt;
using World;  // используем его по умолчанию&lt;br /&gt;
&lt;br /&gt;
var node1 = Storage.open('test.txt', Node.MODE_READ);&lt;br /&gt;
var node2 = Graphics.sceneManager.root.createChildNode('MyNode');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Примечание:''' Применять оператор &amp;lt;tt&amp;gt;'''using'''&amp;lt;/tt&amp;gt; можно не только ко всему пакету, но и к некоторой его части. Если &amp;lt;tt&amp;gt;'''using'''&amp;lt;/tt&amp;gt; указывается внутри тела функции или одного из ее блоков, то подстановка префиксов будет осуществляться в тех же границах что и область видимости данного блока. Такой подход более удобен, поскольку импортируемый пакет используется только в тех местах где это действительно необходимо, притом что в остальных местах импортируемые классы будут &amp;quot;не видны&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Korvin</name></author>	</entry>

	</feed>