Подтвердить что ты не робот

Скрытие личных данных? (С++)

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

4b9b3361

Ответ 4

Классический способ сделать это - прокси-указатель на внутренний класс, который реализует функциональность. Невозможно выполнить частичные определения классов в С++, о которых я знаю.

Ответ 5

Идет коммерческий?;)

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

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

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

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