progs.biz  
Начало>C/C++>Основы C++>Урок 44
C#
VB.NET
Visual C++.NET
ASP.NET
Visual C++ 6
WinAPI
C/C++
Delphi
C++ Builder
Java
SQL
PHP
DirectX
Visual Basic 6.0
Ассемблер
Интернет
Сист. прогр-ние
Pocket PC
Обзор книг
Обзор программ

Алексей Дубовцев Microsoft .NET. Наиболее полное руководство.
Алексей Дубовцев Microsoft .NET. Наиболее полное руководство.
Заказать на Озоне



Яндекс-цитирования

C/C++
Урок 44. Пространства имен

Этот урок мы с вами посвятим пространствам имен в C++. Вообще говоря, вещь эта довольно-таки удобная. Она предназначена для того, чтобы размещать наши типы в некоторой древовидном хранилище. Такое размещение имеет несколько преимуществ. Во-первых, лучшая структуированность вашей программы. Во-вторых, пространства имен позволяют избежать конфликта имен (т. е., например, в программе могут быть классы с одинаковым именем - каждое в своем пространстве имен, разумеется).

Пространства имен активно используются в и других языках - например в C#, Java или VB.NET.

Вот так можно пространство имен использовать:

namespace Com{
    namespace FirmName{
        class Tech{
            public:
            void f0();
            void f1();
        }
    }
}

Тут namespace - это ключевое слово, за которым следует имя пространства имен.

Обратите внимание, что пространства имен могут быть вложенные (у нас, например, их 2).

В соотвествующем cpp-файле пространство имен можно писать двумя способами:

namespace Com{
    namespace FirmName{
        void Tech::f1()
        {
        }
    }
}
void Com::CivBuilder::Tech::f0()
{
}

Как вы видите, во втором способе мы используем :: для получения полного имени класса.

Для того, чтобы этот класс потом где-либо использовать, мы должны в начале файла (в котором мы используем наш класс) указать его пространво имен:

using namespace Com::FirmName;
...

Как видно из приведенного фрагмента, в случае составного пространства имен мы опять используем ::.

Рассылки нашего сайта на Subscribe.Ru
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET new!
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


 
 
Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2008 сайт progs.biz
© 2002-2008 Игорь Алексеев