gpt4 book ai didi

qt - 为什么Qt需要在堆中分配子对象?

转载 作者:行者123 更新时间:2023-12-03 07:01:35 25 4
gpt4 key购买 nike

class MyWidget : public QWidget { public:
MyWidget( QWidget *parent=0, const char *name=0 ); };


MyWidget::MyWidget( QWidget *parent, const char *name )
: QWidget( parent, name ) {
QPushButton *quit = new QPushButton( "Quit", this, "quit" );
quit->setGeometry( 62, 40, 75, 30 );
quit->setFont( QFont( "Times", 18, QFont::Bold ) );
}

在上面的代码中,quit在堆中分配,这是必要的,因为它是MyWidget的子级

为什么Qt需要在堆中分配子对象?

最佳答案

在您的示例中,退出不必分配堆。

这段代码编译并执行得很好:

struct MyWidget : QWidget 
{
QPushButton quit;

MyWidget()
{
quit.setGeometry( 62, 40, 75, 30 );
quit.setFont( QFont( "Times", 18, QFont::Bold ) );
}
};

关于qt - 为什么Qt需要在堆中分配子对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/585801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com