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

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

В дополнение к функциям, классам и перечислениям 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;

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

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

0

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

Пікірлер

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