#include <iostream>
#include <QtCore>
using namespace std;
class Employee : public QObject
{
Q_OBJECT
public:
Employee()
{
mySalary = 0;
mySalary2 = 0;
connect(this,SIGNAL(salaryChanged(int)),this,SLOT(setSalary(int)));
}
int salary() const
{
return mySalary;
}
public slots:
void setSalary(int newSalary);
signals:
void salaryChanged(int newSalary);
private:
int mySalary;
int mySalary2;
};
void Employee::salaryChanged(int newSalary)
{
mySalary = newSalary;
}
void Employee::setSalary(int newSalary)
{
mySalary2 = newSalary;
}
int main()
{ cout << "begin" << endl;
Employee *em = new Employee();
//ToDO
cout << "begin" << endl;
return 0;
}
加上那个Q_OBJECT宏后,编译通不过,错误信息为 undefined reference to `vtable for Employee'
去掉Q_OBJECT后能通过编译,但运行时出错,错误信息为 Object::connect: No such signal QObject::salaryChanged(int)
请问如何解决这个问题啊?