ВУЗ:
Составители:
Рубрика:
124
блоке. Имя, объявленное в пространстве имѐн, обладает внешним
связыванием.
Пример. Демонстрация пространства имѐн. В программе имеется
глобальная переменная с именем i, локальная переменная с тем же именем,
а также переменная i в пространстве имѐн firstNS. Символьные массивы с
именем str определены как в пространстве имѐн firstNS, так и в
secondNS. Все эти имена используются в программе. В самом начале
программы с помощью директивы using namespace firstNS;
импортированы все имена из пространства имен firstNS. Поэтому в
main() обращение str относится к переменной из пространства имѐн
firstNS. Однако запись i означает обращение к локальной переменной –
локальные переменные ―сильнее‖ остальных переменных с тем же именем.
Квалифицированные имена (т.е. с явным указанием пространства имѐн)
позволяют добраться до переменных из различных пространств имѐн. Для
вызова глобальной переменной используется запись ::i, а обращение
firstNS::i обозначает доступ к переменной из пространства имѐн
firstNS.
#include "stdafx.h"
#include <iostream>
using namespace std;
// определение первого пространства имен
namespace firstNS {
int i, k, counter;
char str[] = "Простанство имен firstNS\n";
}
// определение второго пространства имен
namespace secondNS {
int x, y;
char str[] = "Простанство имен secondNS\n";
}
int i=2;// глобальная переменная
using namespace firstNS; /* подключаем все имена из
firstNS */
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_CTYPE, "rus"); // русификация консоли
int i=0;
firstNS::i=1;
cout<<" i="<<i<<" firstNS::i= "<<firstNS::i<<'\n';
cout<<" ::i= "<<::i<<'\n';
блоке. Имя, объявленное в пространстве имѐн, обладает внешним
связыванием.
Пример. Демонстрация пространства имѐн. В программе имеется
глобальная переменная с именем i, локальная переменная с тем же именем,
а также переменная i в пространстве имѐн firstNS. Символьные массивы с
именем str определены как в пространстве имѐн firstNS, так и в
secondNS. Все эти имена используются в программе. В самом начале
программы с помощью директивы using namespace firstNS;
импортированы все имена из пространства имен firstNS. Поэтому в
main() обращение str относится к переменной из пространства имѐн
firstNS. Однако запись i означает обращение к локальной переменной –
локальные переменные ―сильнее‖ остальных переменных с тем же именем.
Квалифицированные имена (т.е. с явным указанием пространства имѐн)
позволяют добраться до переменных из различных пространств имѐн. Для
вызова глобальной переменной используется запись ::i, а обращение
firstNS::i обозначает доступ к переменной из пространства имѐн
firstNS.
#include "stdafx.h"
#include
using namespace std;
// определение первого пространства имен
namespace firstNS {
int i, k, counter;
char str[] = "Простанство имен firstNS\n";
}
// определение второго пространства имен
namespace secondNS {
int x, y;
char str[] = "Простанство имен secondNS\n";
}
int i=2;// глобальная переменная
using namespace firstNS; /* подключаем все имена из
firstNS */
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_CTYPE, "rus"); // русификация консоли
int i=0;
firstNS::i=1;
cout<<" i="<
Страницы
- « первая
- ‹ предыдущая
- …
- 122
- 123
- 124
- 125
- 126
- …
- следующая ›
- последняя »
