Я создал библиотеку C ++ и хотел бы предоставить набор методов в облегченной версии и дополнение в полной версии. Я мог бы использовать наследование, но я хотел бы сохранить то же имя, что и класс, который будет создан. Я хотел бы использовать один и тот же класс для облегчения совместимости (миграция типов доступа) и обслуживания кода.
Изначально я думал о том, чтобы использовать что-то вроде директив сборки для создания "невидимых" методов, но я понял, что пользователи могут активировать эти директивы.
Что-то вроде:
class A
{
public:
A();
void read();
#ifdef MYTAG
void write();
#endif
};
Проблема с этим подходом состоит в том, что если разработчик знает MYTAG, он может использовать методы полной версии. Также было бы необходимо удалить директиву из заголовочных файлов.
Кто-нибудь предлагает какой-либо способ сделать это?