Читайте также:
|
|
Многие серьезные приложения состоят из нескольких программных файлов (с исходным текстом программ), которые создаются и обслуживаются отдельными группами программистов. И только после этого все файлы собираются в общий проект. Но как быть с тем фактом, что в таких файлах могут быть одинаково объявлены некоторые разные переменные? В 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 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Примечание | | | Работа с классом fstream |