在main()Qt项目中动态分配对象

Syn*_*ose 1 c++ qt dynamic object

我有几个动态分配的对象int main(),如何在程序结束时删除它们?目前我认为我不会在程序结束时释放内存,这里主要是:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow *w = new MainWindow;
    breadData *dat = new breadData("audit.dat");
    //link main window with bread data
    w->_link(dat);
    //show main window
    w->show();
    //execute loop
    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

mol*_*ilo 5

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow *w = new MainWindow;
    breadData *dat = new breadData("audit.dat");
    //link main window with bread data
    w->_link(dat);
    //show main window
    w->show();
    //execute loop
    int result = a.exec();
    delete dat;
    delete w;
    return result;
}
Run Code Online (Sandbox Code Playgroud)

但动态分配看起来很不必要.
为什么不

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    breadData dat("audit.dat");
    //link main window with bread data
    w._link(&dat);
    //show main window
    w.show();
    //execute loop
    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)