• 6793阅读
  • 2回复

一个关于继承QDialog类的简单问题 [复制链接]

上一主题 下一主题
离线nvgood
 
只看楼主 倒序阅读 楼主  发表于: 2009-02-06
头文件内容为:

#ifndef _TMP_H
#define _TMP_H

#include <QtGui/QtGui>

class MyDialog : public QDialog
{
        Q_OBJECT

        public:
                MyDialog();
};

#endif

CPP文件内容为:

#include <QtGui/QtGui>

#include "tmp.h"

MyDialog::MyDialog()
{
        this->show();
}

int main(int argc, char **argv)
{
        QApplication app(argc, argv);

        MyDialog *pdlg = new MyDialog;

        return app.exec();
}
=================

请问为什么编译的时候出现:
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.4.3/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/Qt-4.4.3/include/QtCore -I/usr/local/Trolltech/Qt-4.4.3/include/QtCore -I/usr/local/Trolltech/Qt-4.4.3/include/QtGui -I/usr/local/Trolltech/Qt-4.4.3/include/QtGui -I/usr/local/Trolltech/Qt-4.4.3/include -I. -I. -I. -o tmp.o tmp.cpp
tmp.cpp: In function ‘int main(int, char**)’:
tmp.cpp:14: warning: unused variable ‘pdlg’
g++ -Wl,-rpath,/usr/local/Trolltech/Qt-4.4.3/lib -o tmp tmp.o    -L/usr/local/Trolltech/Qt-4.4.3/lib -lQtGui -L/usr/local/Trolltech/Qt-4.4.3/lib -L/usr/X11R6/lib -pthread -lpng -lSM -lICE -pthread -pthread -lXi -lXrender -lXrandr -lfreetype -lfontconfig -lXext -lX11 -lQtCore -lz -lm -pthread -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread
tmp.o: In function `MyDialog::MyDialog()':
tmp.cpp:(.text+0x2f): undefined reference to `vtable for MyDialog'
tmp.cpp:(.text+0x36): undefined reference to `vtable for MyDialog'
tmp.cpp:(.text+0x47): undefined reference to `vtable for MyDialog'
tmp.o: In function `MyDialog::MyDialog()':
tmp.cpp:(.text+0x9f): undefined reference to `vtable for MyDialog'
tmp.cpp:(.text+0xa6): undefined reference to `vtable for MyDialog'
tmp.o:tmp.cpp:(.text+0xb7): more undefined references to `vtable for MyDialog' follow
collect2: ld returned 1 exit status
make: *** [tmp] Error 1

为什么会出现上面的错误阿       
离线老牛
只看该作者 1楼 发表于: 2009-02-12
class MyDialog : public QDialog
{
        Q_OBJECT

        public:
                MyDialog( QWidget *parent = NULL);
};

MyDialog::MyDialog(QWidget *parent)
    : QDialog(parent)
{
        this->show();
}
离线wd007

只看该作者 2楼 发表于: 2009-02-12
楼上有理,构造函数不合
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
快速回复
限100 字节
 
上一个 下一个