Проблемы с доступом к элементам за пределами вложенного пространства имен C ++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проблемы с доступом к элементам за пределами вложенного пространства имен C ++

Сообщение Anonymous »

У меня есть большое пространство имен для всего моего проекта, а затем каждый компонент (файл) имеет собственное вложенное пространство имен внутри этого файла. Большое пространство имен называется IEEngine, а вложенные — IEWhatever (например, IEWindow). Но как мне из IEEngine::IEWhatever2 получить доступ к IEEngine::IEWhatever::Something (что-то является классом). Когда я делаю IEEngine::IEWhatever::Something, я получаю сообщение об ошибке, что в пространстве имен IEEngine нет члена IEWhatever. я включил файл, предоставляющий пространство имен IEWWhatever. но этот файл также включает в себя файл, предоставляющий IEWhatever2, поэтому возникает ошибка, говорящая, что IEWhatever не определен (включение помещается перед пространством имен IEWhatever). Как бы мне исправить это IESomething::Something тоже не работает. Я также попробовал
использовать Something = IEWhatever::Something; но это не сработало
IEDisplay.hpp:
#ifndef IEDISPLAY_HPP
#define IEDISPLAY_HPP

#ifndef IEWINDOW_HPP
#include "IEWindow.hpp"
#endif // IEWINDOW_HPP

#include
#include

#include "external/wayland-protocols/tearing-control-v1/tearing-control-v1.h"
#include "external/wayland-protocols/xdg-shell/xdg-shell-client-protocol.h"
#include "external/wayland-protocols/viewporter/viewporter-client-protocol.h"

namespace IEEngine {
namespace IEDisplay {
class WLDisplay {
private:
struct wl_display* display;
struct wl_registry* registry;
struct wl_compositor* compositor;
struct xdg_wm_base* wm_base;
struct wl_seat* seat;
struct wl_pointer* pointer;
struct wl_touch* touch;
struct wl_keyboard* keyboard;
struct wl_shm* shm;
struct wl_cursor_theme* cursor_theme;
struct wl_cursor* cursor;
struct wl_surface* cursor_surface;
struct wp_tearing_control_manager_v1* tearing_manager;
struct wp_viewporter* viewporter;
struct wp_fractional_scale_manager_v1* fractional_scale_manager;
IEWindow::WLWindow window;
};
}
}

#endif // IEDISPLAY_HPP

IEWindow.hpp:
#ifndef IEWINDOW_HPP
#define IEWINDOW_HPP

#ifndef IEDISPLAY_HPP
#include "IEDisplay.hpp"
#endif // IEDISPLAY_HPP

namespace IEEngine {
namespace IEWindow {
class WLWindow {
IEDisplay::WLDisplay display;
int wHeight;
int wWidth;
};
}
}

#endif // IEWINDOW_HPP


Подробнее здесь: https://stackoverflow.com/questions/793 ... amespace-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»