// Теперь псевдонимы namespace RecipePlanner = CrazySusansCustomRecipePlanner;
namespace RP = RecipePlanner;
namespace Widgets = RP::UserInterfaceWidgets;
namespace Win = Widgets::WindowControls;
void main() (
// Различные способы вызова.Fund()
CrazySusansCustomRecipePlanner::Funcl();
RecipePlanner::Fund();
RP: :Fund() ;
// Различные способы вызова Func2() BecipePlanner: :UserInterfaceWidgets: :Func2'() ;
Widgets::Func2();
// Различные способы вызова Func3() CrazySusansCustomRecipePlanner::UserInterfaceWidgets:
4>WindowControls::Func3();
Win::Func3() ;
// Использование класса Window Win::Window MyWindow;
MyWindow.ShowYourself();
Здесь стоит отметить два момента. Псевдоним может даваться пространству, находящемуся на произвольном уровне вложенности, и это может существенно сократить размер уточняющего префикса (пример— вызов Func3 о). Однако использование псевдонимов требует определенной осторожности. Сами по себе пространства имен применяются для структурирования механизма доступа. Псевдонимы для вложенных пространств позволяют так или иначе обходить этот механизм, поэтому пользоваться ими следует осторожно.
Напоследок стоит отметить, что псевдонимы имеют простой доступ к уже определенным псевдонимам. Таким образом, псевдонимы могут быть построены последовательно, один на основе другого, что упрощает объявление каждого следующего псевдонима.
Ключевое слово using
Псевдонимы, как было показано, действительно могут помочь, но все же нельзя закрывать глаза на то обстоятельство, что каждое упоминание имени, расположенного внутри некоторого пространства имен, в действительности влечет за собой необходимость указания полного уточняющего префикса. В