676 __ Часть IV. Новые возможности C++

ления типов, классов, структур, переменных, функций и т. д. Листинг 24.4 демонстрирует объявление простого пространства имен.

#include <iostream.h>

namespace Simple {

// Как насчет typedef?

typedef enum { Red, Green, Blue } Color;

// Необходимо позаботиться об объявлении функции Color MyFunc() ;

// И класса...

class Dog

{

public:

void Bark(); * };

void Dog::Bark() ( cout « "Woof!\n"; }

//He забыть определить функцию MyFunc, // которую уже объявили. Color MyFunc() { return Red; } }

Поместив это объявление в программу, вы определяете набор объявлений и определений, принадлежащих пространству simple.

Теперь, после того как пространство имен определено, можно действительно его использовать. Следует иметь в виду, что пространство имен — это новый уровень области видимости и что этот уровень действительно невидим для программного кода, в котором четко не указано конкретное пространство имен.

В листинге 24.5 делается попытка использовать определения, которые сделаны внутри пространства simple, без указания на это обстоятельство.

h06761.jpg

void main() {

// Использование класса

Dog My Dog;

MyDog.BarkO ;

Color MyColor = MyFunc() cout « "Цвет: ";