Глава 24. Пространства имен 677
switch (MyColor) ( case Red:
cout « "Красный";
break;
case Green:
cout « "Зеленый";
break;
case Blue:
cout « "Голубой";
break;
» • cout « "\n";
При попытке использовать пространство таким образом компилятор выдаст длинный список неопределенных символов. Это неудивительно, поскольку все, что имеется в пространстве simple, в main () невидимо.
Определения, сделанные внутри пространства имен, можно сделать доступными с помощью операции разрешения области видимости (::), которая, конечно, хорошо известна тем, кто работал с классами C++. Нужное имя определения присоединяется к имени пространства. В листинге 24.6 дается исправленная версия программы, которая компилируется, редактируется и выполняется без ошибок.
void main() {
// Использование класса
Simple::Dog MyDog;
MyDog.BarkO ;
Simple::Color MyColor = Simple::MyFunc(), cout « "Цвет: ";
switch (MyColor) {
case Simple::Red:
cout « "Красный";
break;
case Simple::Green:
cout « "Зеленый";
breaks-case Simple::Blue:
. cout « "Голубой";
break;
} cout « "\n";