Информация об изменениях

Сообщение Re[2]: Интерфейсы и реализации от 06.03.2024 15:06

Изменено 06.03.2024 15:07 rg45

Re[2]: Интерфейсы и реализации
Здравствуйте, 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;

};
Re[2]: Интерфейсы и реализации
Здравствуйте, 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.