2012-01-02 15 views
0
#include <QApplication> 
#include <QLabel> 

int main(int argc, char** argv) 
{ 
    QApplication app(argc, argv); 
    QLabel label("haha"); 
    label.show(); 
    return app.exec(); 
} 

上記のコードを考慮すると、QLabel* label = new QLabel("haha")またはQApplication* app = new QApplication(argc, argv)に変更するとどうなりますか?新しいQLabelと新しくないQLabelの違いは何ですか?

ありがとうございました。

答えて

1

newを使用すると、オブジェクトはスタックではなくヒープ上に作成されます。そして、それはかなりそれほどですね。

ラベルを別のウィジェットの子として設定し、スタック上に親ウィジェットを作成し、ヒープ上の子(この場合はラベル)を作成した場合、子が破棄されたときに問題が発生する可能性があります。しかし、私はそれを確認することはできませんでした。

関連する問題