Для первого вопроса вам нужно хранить реальные объекты, а не только указатели на них.Чтобы иметь возможность хранить объект в контейнере Qt, например QList
, класс должен иметь следующее:
- конструктор по умолчанию
- конструктор копирования
- оператор присваивания
В этом случае будет достаточно конструкторов и оператора присваивания, неявно сгенерированных компилятором.Если в вашем классе есть, например, члены-указатели, вам понадобится явное копирование / назначение для решения вопросов владения.
Для QList::contains()
вы можете перегружать operator==()
, как вы уже сделали.второй вопрос, @Joachim Pileborg правильный.