Сокрытие частных элементов данных? (C++)

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

36
задан jeffythedragonslayer 15 October 2008 в 20:22
поделиться

1 ответ

Выходит в коммерческую эксплуатацию? ;)

Можно создавать заголовочные файлы, в которых вы объявляете только публичный и защищенный API.

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

Для inlined функций: убедитесь, что они используются в неинлайнингованном коде, тогда в библиотеке будет доступно определение (я не уверен, что оно будет инлайнингованным в пользовательской реализации, однако).

Для шаблонного кода нет реального способа обойти это определение. Одним из половинчатых решений является создание кода, использующего шаблонный код с различными типами объектов. Пользователь будет ограничен ими, потому что это единственные определения, доступные в вашей библиотеке.

1
ответ дан 27 November 2019 в 05:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: