错误:未定义引用`vtable for class'

时间:2016-07-19 04:34:46

标签: c++ qt

我在以下代码中出错。我尝试用这里给出的许多选项修复它但不能。

这是.h

#ifndef JUEGO2PRUEBA_H
#define JUEGO2PRUEBA_H
class juego2Prueba: public QGraphicsView
{
Q_OBJECT
public:
    juego2Prueba();
    ~juego2Prueba();
private slots:
    void on_buttonLeft_clicked();
    void on_buttonRight_clicked();
    void on_buttonUp_clicked();
    void on_buttonDown_clicked();

private:
    void mueveMomia();
    void mejorMovMomia(QChar direccion);
    void finalizaJuego();
    bool puedeMoverse(int x, int y,QChar mov);
    void creaTablero();
}

和.cpp

juego2Prueba::juego2Prueba(){
    //CODE
}

void juego2Prueba::on_buttonRight_clicked()
{//CODE}

void juego2Prueba::on_buttonLeft_clicked()
{//CODE}
void juego2Prueba::on_buttonUp_clicked()
{//code}
void juego2Prueba::on_buttonDown_clicked()
{//code}
void juego2Prueba::mueveMomia(){
//code}
void juego2Prueba::mejorMovMomia(QChar direccion){
//CODE}
void juego2Prueba::finalizaJuego(){
    this->hide();
    timerPerdio->stop();}
bool juego2Prueba::puedeMoverse(int x, int y, QChar mov){
//code}
void juego2Prueba::creaTablero(){
//more code}
juego2Prueba::~juego2Prueba(){
}

错误:

C:\Users\Barrionuevo\Desktop\build-MummyAlgoritmos-Desktop_Qt_5_6_0_MinGW_32bit-Debug\debug\juego2prueba.o:-1: In function `ZN12juego2PruebaC2Ev':
C:\Users\Barrionuevo\Desktop\MummyAlgoritmos\juego2prueba.cpp:7: error: undefined reference to `vtable for juego2Prueba'
C:\Users\Barrionuevo\Desktop\MummyAlgoritmos\juego2prueba.cpp:7: error: undefined reference to `vtable for juego2Prueba'

1 个答案:

答案 0 :(得分:-1)

“对vtable的未定义引用”在qt中表示

  1. 信号槽机制存在问题。已有信号 已发送,但对插槽对象的引用无效。所以试着找 哪个信号/插槽关系已损坏,也许你永远不会 为视图分配了一个模型
  2. 有旧的编译器生成的moc文件仍在那里。只需删除完整的调试和发布文件夹即可。