60 lines
No EOL
1.9 KiB
C++
60 lines
No EOL
1.9 KiB
C++
#include <stdio.h>
|
||
|
||
/*
|
||
Зачем вообще нужны пространства имён?
|
||
|
||
Представьте, что вы создаёте большую программу, исходный код который
|
||
содержит миллионы строк кода. Конечно, большая часть кода написана не вами,
|
||
так как вы используете библиотеки, написанные другими программистами.
|
||
|
||
Библиотекой можно назвать совокупность файлов исходного кода, нацеленных
|
||
на решение какой-либо задачи. Например, есть библиотека для работы с графикой
|
||
в которой содержатся функции/структуры/классы для работы с графикой.
|
||
|
||
Если вы подключаете несколько библиотек, то существует высокая вероятность,
|
||
что название чего-либо из одной библиотеки совпадёт с названием чего-то из другой библиотеки.
|
||
Это, конечно, приведёт к ошибке.
|
||
|
||
Чтобы этого избежать и используются пространства имён.
|
||
*/
|
||
|
||
|
||
|
||
namespace audio
|
||
{
|
||
int a = 10;
|
||
|
||
int calculate(int x)
|
||
{
|
||
return x + 1;
|
||
}
|
||
}
|
||
|
||
|
||
namespace graphics
|
||
{
|
||
int a = 20;
|
||
|
||
int calculate(int x)
|
||
{
|
||
return x * 2;
|
||
}
|
||
}
|
||
|
||
|
||
|
||
int main()
|
||
{
|
||
printf("%i\n", audio::a);
|
||
printf("%i\n", graphics::a);
|
||
|
||
|
||
printf("%i\n", graphics::calculate(audio::calculate(graphics::a)));
|
||
}
|
||
|
||
|
||
/*
|
||
Задание:
|
||
|
||
1) Что напечатает данная программа?
|
||
*/ |