我有
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);
}
我该怎么办?我打算在 vector 中使用saveLine类,以在运行时创建行。
编辑:我错误地声明了line1,它应该显示为
saveLine *line1;
但是现在它又给出了另一个错误
ISO C++ forbids declaration of 'saveLine' with no type
和
expected ';' before '*' token
在这条线上。似乎saveLine不再被视为类,怎么回事?
最佳答案
您需要添加一个前向声明以告知编译器saveLine类存在:
像这样:
//declare that there will be a class saveLine
class saveLine;
class MWindow : public QWidget
{
Q_OBJECT
public:
MWindow(QWidget *parent=0);
private:
saveLine *line1;
};