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

С одной стороны, раздраженный оппонент говорит: "Да не давайте вы своим пространствам столь длинных имен!" С другой стороны, действительно хотелось бы найти решение, обеспечивающее большую элегантность и простоту. Такое решение, отчасти, может состоять в использовании псевдонимов (aliases).

Псевдоним позволяет давать одному пространству несколько различных имен. Это означает, что можно успокоить своего начальника тем, что код помещен В Пространство С именем AmalgamatedWoodchuckFeedCorp, НО В ТО же время реально использовать пространство с именем ChuckFood или AWFC.

Синтаксис создания псевдонима достаточно прост:

namespace псевдоним ^ имя_пространства;

Для нашего примера с длинным именем можно.поступить так:

namespace AmalgamatedWoodchuckFeedCorp (

Здесь помещаются определения * } namespace AWFC = AmalgamatedWoodchuckFeedCorp;

В листинге 24.14 приводятся различные варианты использования псевдонимов. Программа создает достаточно громоздкую иерархию, а затем значительно упрощает ее путем введения более коротких псевдонимов.

h06881.jpg

ttinclude <iost.ream.h>

// Очень длинное название пространства имен namespace CrazySusansCustomRecipePlanner i

void Fund() { cout « "Функция Funcl\n"; }

namespace UserInterfaceWidgets (

void Func2() ( cout « "Функция Func2\n"; }

namespace WindowControls {

void Func3() { cout « "Функция Func3\n"; }

class Window

{

public:

void ShowYourself()

{ cout « "Я - окно!\п"; }

};

}