![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
всем снова доброго дня.
вопрос следующий: при подключении хидера в хидер, каким образом можно сделать так, что чтоб содержимое первого было доступно только хидеру подключившему его, но не более? спасибо. |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 2 Всего: 160 |
Очень просто. Использовать нормальный модульный язык, а не язык-калеку.
![]() -------------------- |
|||
|
||||
YDean |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 7.9.2009 Репутация: нет Всего: 1 |
запихнуть include в namespace
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
в том виде в каком задан вопрос - никак.
Добавлено через 1 минуту и 20 секунд и это ограничит доступность во всех местах кроме текущего хидера? Добавлено через 2 минуты и 36 секунд и за что kemiisto все время минусят ? ведь иногда он прав и говорит довольно правильные вещи.. |
|||
|
||||
YDean |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 7.9.2009 Репутация: нет Всего: 1 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
покажите "ограничение на хидер" для любого из случаев ![]() |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
значит никак.
всем спасибо. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
если уточните, что именно надо может быть и найдется решение.. |
|||
|
||||
boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
mes, вот смотрите...
есть первый хидер:
и есть второй, который использует первый:
вопрос в том, что нужно сделать, чтоб my_type был доступен только в "2.hpp". но нигде более, даже если "2.hpp" инклудидтся куда-то еще. |
||||
|
|||||
YDean |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 7.9.2009 Репутация: нет Всего: 1 |
тогда и struct base не будет видна в остальных местах? Это сообщение отредактировал(а) YDean - 13.6.2011, 19:36 |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
решение очевидное : не включать 1.hpp в 2.hpp..
как именно этого добиться зависит от того, что есть my_type .. Вам нужно для pimpl или что то другое преследуете ? |
|||
|
||||
YDean |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 7.9.2009 Репутация: нет Всего: 1 |
если бы в struct base был указатель на my_type, можно было бы задекларировать только имя, а полную декларацию my_type и всех, кто с ней работает, вынести (или подключить) в CPP.
|
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
это невозможно, ибо 2.hpp использует то, что находится в 1.hpp да нет. просто любопытство. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
_использовать_ может по разному.. без описания задачи трудно оценить реальную возможность расцепления.. но если так тянет "скрыть от всех 1.hpp", то наверное все таки лазейка есть.. Добавлено через 2 минуты и 7 секунд тут вот у шаблонов проблема с расцеплением из за отсутствия нормального экспорта.. но и то при правильной архитектуре не сильно загромаждают жизненное пространство.. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |