Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Пространства имен

Читайте также:
  1. III. 10.3. Восприятие пространства
  2. Аксиомы проективного пространства
  3. Влияние киберпространства.
  4. Восприятие пространства
  5. Восприятие пространства в космосе
  6. ГЛАВА V ВЫРАЗИТЕЛЬНОСТЬ СЦЕНИЧЕСКОГО ПРОСТРАНСТВА
  7. Для того, чтобы через три какие- либо точки пространства можно было провести единственную плоскость, необходимо, чтобы эти точки не лежали на одной прямой.

Многие серьезные приложения состоят из нескольких программных файлов (с исходным текстом программ), которые создаются и обслуживаются отдельными группами программистов. И только после этого все файлы собираются в общий проект. Но как быть с тем фактом, что в таких файлах могут быть одинаково объявлены некоторые разные переменные? В C++ это неудобство разрешается с помощью так называемых пространств имен, которые вводятся в каждый составляющий единый проект текстовый программный файл с помощью директивы:

Namespace <имя пространства имен (идентификатор)> {в эти скобки заключается весь программный текст}

Когда идет сборка общего проекта, то в итоговом тексте пишут директиву:

using namespace:: идентификатор пространства имен;

Это обеспечивает в итоговом проекте доступ к переменным файла с данным пространством имен. При использовании поточных классов языка C++ в основной программе требуется писать директиву:

using namespace::std;

В противном случае программа не пройдет компиляцию. В листинге 9.9 приводится пример использования директив пространства имен, результат работы программы показан на рис. 9.7.

Листинг 9.9

// З7.срр: Defines the entry point for the console application.

#include "stdafx.h"

#include <iostream>

#include <conio.h>

namespace F

{

float x = 9;

}

namespace G

{

using namespace F; /*здесь само пространство G использует пространство F и в нем же объявляется еще одно пространство: INNER_G*/

float у = 2.0;

namespace INNER_G

{

float z = 10.01;

}

} //G

int _tmain()

{

using namespace G; /*эта директива позволяет пользоваться всем, объявленным в "G"*/

using namespace G::INNER_G; /*эта директива позволяет пользоваться всем, объявленным только в "INNER_G"*/

float x = 19.1; /*локальное объявление переопределяет предыдущее*/

std::cout << "х = " << х << std::endl;

std::cout << "у = " << у << std::endl; /* у берется из пространства F*/

std::cout << "z = " << z << std::endl; /* z берется из пространства INNER_G*/

_getch();

}

/*Результат:

x = 19.1

y=2

z=10.1

*/

Рис. 9.7. Результат работы программы листинга 9.9

std::cout — это стандартный вывод. Его мы рассмотрим чуть позже. Здесь показано, что объект cout принадлежит пространству имен std. Мы могли I бы в основной программе записать:

using namespace::std;

Тогда бы вместо std:: cout можно было бы писать просто cout.

Итак, при составлении программы с использованием поточных файлов в начале основной программы следует записать директиву:

using namespace std;


Дата добавления: 2015-07-26; просмотров: 52 | Нарушение авторских прав


Читайте в этой же книге: Функции стандартного ввода/вывода | Работа с классом ifstream | Работа с бинарным файлом | Примечание |
<== предыдущая страница | следующая страница ==>
Примечание| Работа с классом fstream

mybiblioteka.su - 2015-2024 год. (0.006 сек.)