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

// Эта функция НЕ принадлежит пространству имен Test

void InterestingFunc()

(

cout « "Поехали...\n";

)

// Здесь пространство расширяется

namespace Test

{

void JustAnotherFunc() { cout « "На старт!\n"; )

// А это перегруженная версия.JustAFunc void JustAFunc(bool) ( cout «'"Я перегружена!\n"; } }

void main()

{ ! '• f // Вызов первой версии Test::JustAFunc() ;

// Вызов второй версии Test::JustAFunc(true) ;

Может показаться удивительным, почему специально рассмотрен случай перегрузки функции. Дело в том, что при смешении расширенных пространств имен, использующих перегрузку, могут происходить необычные вещи. Рассмотрим листинг 24.10 — слегка измененную версию листинга 24.9, в котором также используется перегрузка.

ftinclude <iostream.h>

// Первоначальное объявление пространства имен

namespace Test

(

void JustAFunc(int Anint)

{

cout « "Это int! (Значение = " « Anint « ")\n";

// Эта функция НЕ принадлежит пространству имен Test // Обратите внимание на вызов JustAFuncO void InterestingFunc() {

cout « "Вызываем JustAFuncO ...\n";

Test::JustAFunc(24.7);