2009-06-22 2 views
1

Я знаю, как это сделать для C++/CLI и .NET вообще, но C++ не имеет атрибутов. Сценарий таков:Скрыть методы класса от Intellisense и/или определенных «клиентов»?

Мы хотим предоставить некоторые методы в двоичном формате, но мы не хотим, чтобы все наши клиенты использовали их. Если клиенту это нужно, мы можем либо сказать ему, что такое подпись, либо отправить ему другой небинный файл.

+1

Возможное решение можно найти здесь: http://stackoverflow.com/questions/6496524/hide-a-c-code-block-from-intellisense –

ответ

2

Я не думаю, что вы можете это контролировать. Поскольку вы должны публиковать файлы заголовков для библиотеки, то вы обнаружите весь интерфейс, даже если не через intellisense.

Однако вы должны подумать, что есть другие инструменты, которые делают то же самое, что используется многими разработчиками (например, Visual Assist).

Если вам нужно скрыть некоторые детали реализации, лучшим решением является применение идиомы pimpl и предоставление в файлах заголовков интерфейсных классов с использованием «общедоступных», используемых методов.

Классы реализации будут включены только из файлов cpp, содержащих скомпилированные, и только forward объявлены в общедоступных файлах заголовков.

Смежные вопросы