Создание библиотеки c ++: облегченная версия против полной версии - PullRequest
0 голосов
/ 23 апреля 2020

Я создал библиотеку C ++ и хотел бы предоставить набор методов в облегченной версии и дополнение в полной версии. Я мог бы использовать наследование, но я хотел бы сохранить то же имя, что и класс, который будет создан. Я хотел бы использовать один и тот же класс для облегчения совместимости (миграция типов доступа) и обслуживания кода.

Изначально я думал о том, чтобы использовать что-то вроде директив сборки для создания "невидимых" методов, но я понял, что пользователи могут активировать эти директивы.

Что-то вроде:

class A
{
   public:
      A();
      void read();

      #ifdef MYTAG
      void write();    
      #endif
};

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

Кто-нибудь предлагает какой-либо способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...