Re: Интерфейсы и реализации
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 06.03.24 12:13
Оценка:
Здравствуйте, Marty, Вы писали:

В общем, решил сделать на интерфейсах и shared_ptr, но не показывать их пользователю, а обернуть в value-классы, получается что-то типа pimpl'а:

struct Cursor
{

    Cursor() = delete;
    Cursor(const Cursor&) = default;
    Cursor& operator=(const Cursor&) = default;
    Cursor(Cursor&&) = default;
    Cursor& operator=(Cursor&&) = default;

    Cursor(std::shared_ptr<ICursor> pimpl) : m_pImpl(pimpl) {}

protected:

    std::shared_ptr<ICursor>  m_pImpl;

};


В принципе, если захочется в жоский эмбед портануть, то можно будет выкинуть пимплы, и запилить туда непосредственную реализацию, при этом внешний интерфейс для пользователя останется тем же самым, и прикладной код можно будет переносить как есть
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.