У меня естьQt «нет функции согласования для вызова»
no matching function for call to 'saveLine::saveLine()'
ошибку при компиляции моего приложения. Конструктор никогда не называется.
saveLine определение класса:
class saveLine
{
public:
saveLine(QWidget *parent);
private:
QPushButton *selectButton, *acceptButton;
QLabel *filePath;
QLineEdit *allias;
};
saveLine используется в другом классе, который определяется следующим образом:
class MWindow : public QWidget
{
Q_OBJECT
public:
MWindow(QWidget *parent=0);
private:
saveLine line1;
};
ошибка указывает на MWindow реализация конструктор
MWindow::MWindow(QWidget *parent):QWidget(parent)
{
this->setWindowTitle("Launcher");
this->resize(600,600);
}
Что должен я делать? Я намерен использовать класс saveLine в векторе для создания строк во время выполнения.
EDIT: Я misdeclared line1, он должен читать
saveLine *line1;
, но теперь она дает другую ошибку
ISO C++ forbids declaration of 'saveLine' with no type
и
expected ';' before '*' token
на этой линии. Кажется, что saveLine больше не считается классом, как так?
Незначительный нит: вы должны передать 'this' вместо' parent' 'в' line1() '. – Bill
Я сделал, это не помогло. – Blin
Хорошая точка - всегда добавляет свой собственный конструктор по умолчанию в дополнение к перегруженным конструкторам. – RooiWillie