Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpOpNsAn 116 of 150 menu
◀ ▶

Безымянное пространство в C++

Не каждое имя должно быть видно всему проекту.

Безымянное пространство в .cpp ограничивает область видимости: функции и переменные внутри namespace { ... } существуют только в этом файле. Снаружи к ним не обратиться, зато имя не конфликтует с таким же в другом .cpp.

Публичная функция run объявлена в заголовке, а локальный помощник step спрячем в cpp:

#ifndef APP_H #define APP_H void run(); #endif

В app.cpp помощник живет в безымянном пространстве:

#include <iostream> #include "app.h" namespace { void step() { std::cout << "step\n"; } } void run() { step(); }

Сделайте start в game.h и в game.cpp вызовите из нее скрытую boot, которая выводит ready.

Попробуйте вызвать step из main.cpp - компилятор не должен найти имя.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить