当前位置: 代码迷 >> QT开发 >> ! undefined reference to `vtable for *异常
  详细解决方案

! undefined reference to `vtable for *异常

热度:56   发布时间:2016-04-25 03:20:47.0
求救! undefined reference to `vtable for ***错误
/*register.h*/
public:
    explicit regist(QWidget *parent = 0);
    virtual ~regist();

/*register.cpp*/
regist::~regist()
{
    delete ui;
}
 错误:undefined reference to `vtable for regist'
这是在别的文件copy下来的,那个没有错误,怎么这个就出错了。
求大哥大姐们帮帮忙,SOS!!!!
------解决方案--------------------
是不是添加Q_OBJECT后没有运行qmake?
------解决方案--------------------
这个错误表示,你有成员函数定义了没实现,最有可能是你没有实现构造函数
------解决方案--------------------
你这是全部代码?
建议贴上来所有代码。
------解决方案--------------------
引用:
那个应该不是笔误,以前老师就是那样写的。我改一下

那说明你们老师也搞错了。我给你个例子,看看Qt自己生成的控件类是啥样子你就会清楚了:
#ifndef DIALOGLOGIN_H
#define DIALOGLOGIN_H

#include <QDialog>

namespace Ui {
class DialogLogin;
}

class DialogLogin : public QDialog
{
    Q_OBJECT

public:
    explicit DialogLogin(QWidget *parent = 0);
    ~DialogLogin();

private:
    Ui::DialogLogin *ui;
};

#endif // DIALOGLOGIN_H
#include "dialoglogin.h"
#include "ui_dialoglogin.h"

DialogLogin::DialogLogin(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::DialogLogin)
{
    ui->setupUi(this);
}

DialogLogin::~DialogLogin()
{
    delete ui;
}

------解决方案--------------------
QString str=text_input->toPlainText();
           ui->text_show->toPlainText().append(str);

这个,这样当然不对啊!
改成:
QString str=text_input->toPlainText();
           ui->text_show->setPlainText (str);
另外,你如果对RichText没啥要求,还是用简单控件QPlainTextEdit
  相关解决方案