На додаток до функцій, класів і перерахувань 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;