Q&A-1:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Q&A-1:相关的知识,希望对你有一定的参考价值。

Q:

QMenu *file = menuBar()->addMenu(tr(“&File”));
file->addAction(openAction);

QToolBar *toolBar = addToolBar(tr(“&File”));
toolBar->addAction(openAction);
file和toolBar这两个变量是在构造函数内部被定义和赋值的,那岂不是出了构造函数,他们就应该被销毁?

A:

  这里并不能得出这个结论。注意,如果不看源代码,你不能推断出,addMenu() 和 addToolBar() 这两个函数是如何实现的:是在堆上,还是在栈上分配内存空间,你所知道的仅仅是这两个函数返回了一个指针。如果是在栈上,它们必定会在超出作用域被销毁;如果是堆上则不会。(当然,从你所举的例子看,肯定是在堆上分配空间的,否则就像你所说的,一旦出了构造函数就会被销毁)

————————————————————————————————————————————————————————————————————

Q:

“在堆上创建了openAction对象”,这个“堆”应该是与“栈”对应的,请问该如何理解?

A:

使用 new 关键字创建的对象,都是在堆上面分配空间;否则都是在栈上面分配的

 

 

Tips:

  使用 qrc 与不使用 qrc 是完全不同的:前者会编译成二进制代码,直接内嵌到 exe 中;后者会在运行时加载图片。二者适用于不同的场合:前者运行效率更高,但是不能由用户提供并切换;后者可以由用户提供图片并切换显示,适合于用户自定义主题等。

  QMenu *file = menuBar()->addMenu(tr(“&a”)); 等价于 QMenuBar *mb = menuBar();mb->addMenu(tr("&a"));

转自:https://www.devbean.net/2012/08/qt-study-road-2-action/

以上是关于Q&A-1:的主要内容,如果未能解决你的问题,请参考以下文章

可恶的C指针运算左右结合性质

实验5 数组和指针

Q&A| UML ISSO/回国 Q&A

bzoj 1856: [Scoi2010]字符串

在PowerBI桌面上访问Q&A?

BigQuery 正则表达式提取两个子字符串之间的字符串