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, без указания на это обстоятельство.
void main() {
// Использование класса
Dog My Dog;
MyDog.BarkO ;
Color MyColor = MyFunc() cout « "Цвет: ";