Указатель класса самого на себя

109
22 марта 2021, 19:30

Не до конца могу уловить плюс от конструкций типа:

class Option
{
    public:
        typedef Namespace::SharedPtr<Option> Ptr;
        ....
}

typedef std::vector<Option::Ptr> options;

В чем плюс такой конструкции? Почему не можно обойтись без Ptr и сделать просто typedef std::vector<Option> option?

Answer 1

Если добавить немного условного кода, то будет понятнее смысль определений новых имен.

namespace Namespace {
    template < class T>
    struct SharedPtr {/*...*/};
}
class Option
{
public:
    typedef  Namespace::SharedPtr<Option> Ptr;
    Ptr mf1();
    void mf2(Ptr);
    //...
private:
    Ptr next;
};
typedef std::vector<Option::Ptr> options;
options& erace(options& v, Option::Ptr)
{ /*...*/ }
//...
READ ALSO
Qt/C++. Фиксированный размер map

Qt/C++. Фиксированный размер map

Нужно хранить в map только N отсортированных значений

116
Отправить данные на определенный сайт и обработать ответ. libcurl

Отправить данные на определенный сайт и обработать ответ. libcurl

Хотелось бы через libcurl отправлять свой Unicode текст и получать ответ на вот этом сайте https://wwwdcode

99
Многопоточность. Проблемы с пониманием mutex и lock_guard

Многопоточность. Проблемы с пониманием mutex и lock_guard

UPD: удалил вторую часть вопроса, оставил чисто мьютекс и лок-гард

114