第一种情况
- 原因:声明函数与定义函数的函数类型不一致;
- 解决办法:将定义函数与声明函数类型改为一致;
第二种情况
- 原因:虚函数的声明和定义与编译错误;
- 解决办法:添加该虚函数的定义;
例如:
MouseEvent::~MouseEvent(){
}
这时注意,我们可能会遇到如此情况,再看下面的void Test()函数,同样只有声明,没有给出定义,但是编译的时候却不报错,这又是怎么回事呢?(当然也没有调用Test()方法)
class MouseEvent:public QMainWindow
{
Q_QBJECT
public:
MouseEvent(QWidget *parent =nullptr);
~MouseEvent();
void Test();//test
};
MouseEvent::MouseEvent(QWidget *parent):QMainWindow(parent){}
MouseEvent::~MouseEvent(){
}
这是因为我们的虚函数是virtual修饰的,在类的声明中,用virtual修饰的方法,不论是否被调用,都需要给出相应的定义!