阅读94 返回首页    go 阿里云 go 技术社区[云栖]


关于Qt退出码255的一点总结

Qt程序退出码255

先说症状,程序运行正常,但是在关闭程序时,却出现的异常,提示退出码为255。查看了一翻代码,也没有找到有什么问题,百度上也没找到有效的解决方法。后来偶然发现了问题所在,原因是在析构函数中,先删除了父类指针,再删除子类指针引起的。这算是一个低级问题了。调整删除指针的顺序后,程序欢快的结束了。

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QPushButton>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    QPushButton * btn1;
    QPushButton * btn2;
};

#endif // MAINWINDOW_H


//----

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    btn1 = new QPushButton(this);
    btn2 = new QPushButton(btn1);
}

MainWindow::~MainWindow()
{
    delete btn1;  // 先删除父类
    delete btn2;  // 再删除子类,退出码为255
}

只需要调整一下delete的顺序,
delete btn2;
delete btn1;

OK,程序正常结束,退出码为0

最后更新:2017-11-16 12:04:15

  上一篇:go  mysql
  下一篇:go  运营小帮手软文推广新闻发稿平台将是未来助企业一臂之力的新秀