Q:

Qt.  Проблемы с QVector

Есть класс такого рода:
#ifndef SOME_H
#define SOME_H

#include <QPoint>
#include <QColor>

class Some
{
public:
    QPoint point;
    QColor color;    
public:
    Some(QColor c, QPoint p) : color(c), point(p) { }
};

#endif // SOME_H

При создании вектора и добавлении объектов этого класса - выдает ошибку. 
QVector<Some> s;
s.push_back(Some(QColor(Qt::red), QPoint(0, 0)));

Ошибка:

no matching function for call to ‘Some::Some()’
               new (from++) T();
               ^

Как это исправить?  

A:

В документации сказано, что:

The values stored in the various containers can be of any assignable
  data type.  To qualify, a type must provide a default constructor, a
  copy constructor, and an assignment operator. 

В вашем классе нет конструктора по умолчанию, соответственно его нельзя использовать в Qt-контейнерах.  Можно добавить аргументы по умолчанию в текущий конструктор, это тоже решит проблему:
Some(QColor c = QColor(Qt::red), QPoint p = QPoint(0, 0)) : color(c), point(p) { }

