Re[2]: Интерфейсы и реализации
От: rg45 СССР  
Дата: 06.03.24 15:06
Оценка: +1
Здравствуйте, Marty, Вы писали:

M>
struct Cursor
M>{

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

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

M>protected:

M>    std::shared_ptr<ICursor>  m_pImpl;

M>};



А зачем так многословно? Абсолютно то же самое можно было получить гораздо лаконичнее, вот стопроцентный эквивалент:

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

protected:

  std::shared_ptr<ICursor>  m_pImpl;

};


Ну и конструктор я бы объявил как explicit.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 06.03.2024 15:07 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.