閱讀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  運營小幫手軟文推廣新聞發稿平台將是未來助企業一臂之力的新秀