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);