Есть ли способ скрыть частные члены данных класса C++ от своих пользователей, в файле cpp? Я думаю о частных членах как о части реализации, и кажется немного назад, чтобы объявить их в файле заголовка.Скрытие личных данных? (C++)
ответ
Идиома «pimpl» - это то, как это обычно обрабатывается.
См
- http://www.gotw.ca/gotw/024.htm
- http://www.gotw.ca/gotw/028.htm
- http://herbsutter.com/gotw/_100/ (обновлена для C++ 11)
Классический способ сделать это с указателем прокси на внутренний класс, реализует функциональность. Невозможно выполнить частичные определения классов в C++, о которых я знаю.
См Pimpl Idiom
вы хотите использовать что-то вроде Pimpl идиомы
Going коммерческий? ;)
Вы можете создавать файлы заголовков, в которых вы объявляете только открытый и защищенный API.
Пользователь представлен только ими, которые они могут включать. Они связывают свой код с библиотекой, которую вы создали с использованием полного API и определений.
Для встроенных функций: убедитесь, что они используются в неинтерминированном коде, тогда в библиотеке будет доступно определение (я не уверен, что оно будет включено в пользовательскую реализацию).
Для шаблонного кода нет реального пути. Одним из половинчатых решений является создание кода, который использует шаблонный код с разными типами объектов. Пользователь будет ограничен этим, потому что они являются единственными определениями, доступными в вашей библиотеке.
- 1. Управление библиотекой личных изображений личных данных
- 2. C# и скрытие данных
- 3. C# ошибки при использовании личных данных поймать
- 4. с помощью использования личных данных в C#
- 5. Хранение личных данных по странам MVC C#
- 6. C++ Передача личных данных из непрозрачного указателя
- 7. Сохранение личных данных
- 8. Скрытие «вкладки личных предпочтений» в пользовательских предпочтениях пользователя plone
- 9. Мониторинг личных данных в Интернете
- 10. Вставка личных данных в базу данных Таблица
- 11. Скрытие данных
- 12. Публичные итераторы C++/STL для глубоко вложенных личных данных
- 13. Как ограничить модификацию элементов личных данных объектов на C++?
- 14. инкапсуляция данных скрытие, сеттеры/добытчиками в C++
- 15. Дизайн базы данных приложений для личных финансов
- 16. Риск безопасности при хранении личных данных
- 17. CloudFoundry Trace и случай личных данных
- 18. SQL Select проверка личных данных условие
- 19. Передача личных данных через метод WCF OperationContract?
- 20. вопрос о Google Checkout Merchant личных данных
- 21. Потенциальная утечка личных данных обнаружено пула соединений
- 22. Очистка URL-адресов для удаления личных данных
- 23. Обратные копии личных данных, а не ссылок
- 24. Проектирования баз данных для простых Личных сообщений
- 25. Система личных сообщений в базе данных
- 26. Если проверка личных данных тип ошибки
- 27. Настройка хранилища личных данных Maven/Spring
- 28. Использование личных данных для дочерних классов
- 29. Выбор и обновление личных данных необходима помощь
- 30. Android: просмотр личных данных приложения - отладка
Спасибо, сейчас работает. Эти две статьи хорошо объясняют идиому. – jeffythedragonslayer 2008-10-15 20:51:28
Имеет ли это влияние на производительность? – jjxtra 2013-01-31 17:24:48