Evgenii Legotckoi
Қаз. 15, 2017, 2:41 Т.Ж.

C++ - Сабақ 010. Атау кеңістігі

В дополнение к функциям, классам и перечислениям C++ предоставляет пространства имён (namespaces) как механизм управления и контроля за повторяющимися именами функций и классов. Например, если назвать некоторые ваши функции именами, которые пересекаются с именами функций в стандартной библиотеки, то Вы получите конфликт имён, то есть переопределение функции из стандартной библиотеки, что может привести к неопределённости и ошибкам в программе. Благодаря пространству имён можно избежать этой проблемы, просто поместив функции в namespace .


  1. namespace My_code
  2. {
  3. class complex { /* ... */ };
  4. complex sqrt(complex);
  5. // ...
  6. int main();
  7. }
  8.  
  9. int My_code::main()
  10. {
  11. complex z {1,2};
  12. auto z2 = sqrt(z);
  13. std::cout << '{' << z2.real() << ',' << z2.imag() << "}\n";
  14. // ...
  15. };
  16.  
  17. int main()
  18. {
  19. return My_code::main();
  20. }

В данном случае пространство My_code позволяет написать отдельную реализацию функции main() , которая будет вызываться в реальной функции main() , для этого потребуется вызвать функцию main() через пространство имён My_code .

  1. My_code::main();

Аналогичным способом вызываются и функции из стандартной библиотеки, например:

  1. std::max(3, 5);

Для того, чтобы облегчить себе жизнь и не писать каждый раз std , можно использовать директиву using .

  1. using namespace std;

Осы тақырып бойынша ұсынылатын мақалалар

Мақала бойынша сұралады0сұрақтар(лар)

0

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

Пікірлер

Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
Кіріңіз немесе Тіркеліңіз