This question already has answers here:
Qt Linker Error: “undefined reference to vtable” [duplicate]
(9个答案)
3年前关闭。
我在以下代码中有错误。我尝试使用此处提供的许多选项来修复它,但无法解决。
这是.h
和.cpp
错误:
(9个答案)
3年前关闭。
我在以下代码中有错误。我尝试使用此处提供的许多选项来修复它,但无法解决。
这是.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'
最佳答案
“未定义对vtable的引用”在qt中表示
信号插槽机制有问题。信号已经
已发送,但对插槽对象的引用无效。所以尝试找到
哪个信号/插槽关系被破坏,也许您从未
为视图分配模型
还有旧的编译器生成的moc文件,这些文件仍然存在。只需删除完整的调试和发布文件夹。
关于c++ - 错误:未定义对“vtable for class”的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38449649/
10-11 16:30