На додаток до функцій, класів і перерахувань C++ надає простору імен (namespaces) як механізм управління та контролю за іменами функцій і класів, що повторюються. Наприклад, якщо назвати деякі ваші функції іменами, які перетинаються з іменами функцій у стандартній бібліотеці, Ви отримаєте конфлікт імен, тобто перевизначення функції зі стандартної бібліотеки, що може призвести до невизначеності та помилок у програмі. Завдяки простору імен можна уникнути цієї проблеми, просто помістивши функції в namespace .
namespace My_code { class complex { /* ... */ }; complex sqrt(complex); // ... int main(); } int My_code::main() { complex z {1,2}; auto z2 = sqrt(z); std::cout << '{' << z2.real() << ',' << z2.imag() << "}\n"; // ... }; int main() { return My_code::main(); }
В даному випадку простір My_code дозволяє написати окрему реалізацію функції main() , яка буде викликатись у реальній функції main() , для цього потрібно викликати функцію main() через простір імен My_code .
My_code::main();
Аналогічним способом викликаються функції зі стандартної бібліотеки, наприклад:
std::max(3, 5);
Для того, щоб полегшити собі життя і не писати щоразу std можна використовувати директиву using .
using namespace std;